icn3d 3.23.6 → 3.24.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/icn3d.js CHANGED
@@ -4368,10 +4368,10 @@ class ParasCls {
4368
4368
  ];
4369
4369
 
4370
4370
  this.backgroundColors = {
4371
- black: this.thr(0x000000),
4372
- grey: this.thr(0xCCCCCC),
4373
- white: this.thr(0xFFFFFF),
4374
- transparent: this.thr(0xFFFFFF) //this.thr(0x000000)
4371
+ 'black': this.thr(0x000000),
4372
+ 'grey': this.thr(0xCCCCCC),
4373
+ 'white': this.thr(0xFFFFFF),
4374
+ 'transparent': this.thr(0xFFFFFF) //this.thr(0x000000)
4375
4375
  };
4376
4376
 
4377
4377
  this.residueColors = {
@@ -5685,7 +5685,7 @@ class ClickMenu {
5685
5685
  if(!bOneset) $("#" + me.pre + id2).resizable();
5686
5686
  }
5687
5687
 
5688
- applyShownMenus() { let me = this.icn3dui; me.icn3d;
5688
+ applyShownMenus(bNoSave) { let me = this.icn3dui; me.icn3d;
5689
5689
  let idArray = [];
5690
5690
  for(let id in me.htmlCls.allMenus) {
5691
5691
  if(me.htmlCls.shownMenus.hasOwnProperty(id)) {
@@ -5705,7 +5705,7 @@ class ClickMenu {
5705
5705
  }
5706
5706
 
5707
5707
  // save to localStorage
5708
- if(localStorage) localStorage.setItem('hiddenmenus', JSON.stringify(idArray));
5708
+ if(localStorage && !bNoSave) localStorage.setItem('hiddenmenus', JSON.stringify(idArray));
5709
5709
  }
5710
5710
 
5711
5711
  getHiddenMenusFromCache() { let me = this.icn3dui; me.icn3d;
@@ -5785,96 +5785,96 @@ class ClickMenu {
5785
5785
  let thisClass = this;
5786
5786
  //mn 1
5787
5787
  // clkMn1_mmtfid: function() {
5788
- me.myEventCls.onIds("#" + me.pre + "mn1_vastplus", "click", function(e) { me.icn3d; //e.preventDefault();
5788
+ me.myEventCls.onIds("#" + me.pre + "mn1_vastplus", "click", function(e) { me.icn3d; e.preventDefault();
5789
5789
  me.htmlCls.dialogCls.openDlg('dl_vastplus', 'Please input PDB ID for VAST+');
5790
5790
  });
5791
5791
 
5792
- me.myEventCls.onIds("#" + me.pre + "mn1_vast", "click", function(e) { me.icn3d; //e.preventDefault();
5792
+ me.myEventCls.onIds("#" + me.pre + "mn1_vast", "click", function(e) { me.icn3d; e.preventDefault();
5793
5793
  me.htmlCls.dialogCls.openDlg('dl_vast', 'Please input chain or PDB file for VAST');
5794
5794
  });
5795
5795
 
5796
- me.myEventCls.onIds("#" + me.pre + "mn1_foldseek", "click", function(e) { me.icn3d; //e.preventDefault();
5796
+ me.myEventCls.onIds("#" + me.pre + "mn1_foldseek", "click", function(e) { me.icn3d; e.preventDefault();
5797
5797
  me.htmlCls.dialogCls.openDlg('dl_foldseek', 'Submit your selection to Foldseek');
5798
5798
  });
5799
5799
 
5800
- me.myEventCls.onIds("#" + me.pre + "mn1_mmtfid", "click", function(e) { me.icn3d; //e.preventDefault();
5800
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmtfid", "click", function(e) { me.icn3d; e.preventDefault();
5801
5801
  me.htmlCls.dialogCls.openDlg('dl_mmtfid', 'Please input MMTF ID');
5802
5802
  });
5803
5803
 
5804
5804
  // clkMn1_pdbid: function() {
5805
- me.myEventCls.onIds("#" + me.pre + "mn1_pdbid", "click", function(e) { me.icn3d; //e.preventDefault();
5805
+ me.myEventCls.onIds("#" + me.pre + "mn1_pdbid", "click", function(e) { me.icn3d; e.preventDefault();
5806
5806
  me.htmlCls.dialogCls.openDlg('dl_pdbid', 'Please input PDB ID');
5807
5807
  });
5808
5808
 
5809
- me.myEventCls.onIds("#" + me.pre + "mn1_afid", "click", function(e) { me.icn3d; //e.preventDefault();
5809
+ me.myEventCls.onIds("#" + me.pre + "mn1_afid", "click", function(e) { me.icn3d; e.preventDefault();
5810
5810
  me.htmlCls.dialogCls.openDlg('dl_afid', 'Please input AlphaFold UniProt ID');
5811
5811
  });
5812
5812
 
5813
- me.myEventCls.onIds("#" + me.pre + "mn1_refseqid", "click", function(e) { me.icn3d; //e.preventDefault();
5813
+ me.myEventCls.onIds("#" + me.pre + "mn1_refseqid", "click", function(e) { me.icn3d; e.preventDefault();
5814
5814
  me.htmlCls.dialogCls.openDlg('dl_refseqid', 'Please input NCBI Protein Accession');
5815
5815
  });
5816
5816
 
5817
- me.myEventCls.onIds("#" + me.pre + "mn1_opmid", "click", function(e) { me.icn3d; //e.preventDefault();
5817
+ me.myEventCls.onIds("#" + me.pre + "mn1_opmid", "click", function(e) { me.icn3d; e.preventDefault();
5818
5818
  me.htmlCls.dialogCls.openDlg('dl_opmid', 'Please input OPM PDB ID');
5819
5819
  });
5820
5820
 
5821
- me.myEventCls.onIds("#" + me.pre + "mn1_align", "click", function(e) { me.icn3d; //e.preventDefault();
5821
+ me.myEventCls.onIds("#" + me.pre + "mn1_align", "click", function(e) { me.icn3d; e.preventDefault();
5822
5822
  me.htmlCls.dialogCls.openDlg('dl_align', 'Align two PDB structures');
5823
5823
  });
5824
5824
 
5825
- me.myEventCls.onIds("#" + me.pre + "mn1_alignaf", "click", function(e) { me.icn3d; //e.preventDefault();
5825
+ me.myEventCls.onIds("#" + me.pre + "mn1_alignaf", "click", function(e) { me.icn3d; e.preventDefault();
5826
5826
  me.htmlCls.dialogCls.openDlg('dl_alignaf', 'Align two AlphaFold structures');
5827
5827
  });
5828
5828
 
5829
- me.myEventCls.onIds("#" + me.pre + "mn1_chainalign", "click", function(e) { me.icn3d; //e.preventDefault();
5829
+ me.myEventCls.onIds("#" + me.pre + "mn1_chainalign", "click", function(e) { me.icn3d; e.preventDefault();
5830
5830
  me.htmlCls.dialogCls.openDlg('dl_chainalign', 'Align multiple chains by structure alignment');
5831
5831
  });
5832
5832
 
5833
- me.myEventCls.onIds("#" + me.pre + "mn1_chainalign2", "click", function(e) { me.icn3d; //e.preventDefault();
5833
+ me.myEventCls.onIds("#" + me.pre + "mn1_chainalign2", "click", function(e) { me.icn3d; e.preventDefault();
5834
5834
  me.htmlCls.dialogCls.openDlg('dl_chainalign2', 'Align multiple chains by sequence alignment');
5835
5835
  });
5836
5836
 
5837
- me.myEventCls.onIds("#" + me.pre + "mn1_chainalign3", "click", function(e) { me.icn3d; //e.preventDefault();
5837
+ me.myEventCls.onIds("#" + me.pre + "mn1_chainalign3", "click", function(e) { me.icn3d; e.preventDefault();
5838
5838
  me.htmlCls.dialogCls.openDlg('dl_chainalign3', 'Align multiple chains residue by residue');
5839
5839
  });
5840
5840
 
5841
- me.myEventCls.onIds("#" + me.pre + "mn1_mutation", "click", function(e) { me.icn3d; //e.preventDefault();
5841
+ me.myEventCls.onIds("#" + me.pre + "mn1_mutation", "click", function(e) { me.icn3d; e.preventDefault();
5842
5842
  me.htmlCls.dialogCls.openDlg('dl_mutation', 'Show the mutations in 3D');
5843
5843
  });
5844
5844
 
5845
- me.myEventCls.onIds("#" + me.pre + "mn1_pdbfile", "click", function(e) { me.icn3d; //e.preventDefault();
5845
+ me.myEventCls.onIds("#" + me.pre + "mn1_pdbfile", "click", function(e) { me.icn3d; e.preventDefault();
5846
5846
  //me = me.setIcn3dui($(this).attr('id'));
5847
5847
  me.htmlCls.dialogCls.openDlg('dl_pdbfile', 'Please input PDB File');
5848
5848
  });
5849
- me.myEventCls.onIds(["#" + me.pre + "mn1_pdbfile_app", "#" + me.pre + "tool_pdbfile"], "click", function(e) { me.icn3d; //e.preventDefault();
5849
+ me.myEventCls.onIds(["#" + me.pre + "mn1_pdbfile_app", "#" + me.pre + "tool_pdbfile"], "click", function(e) { me.icn3d; e.preventDefault();
5850
5850
  //me = me.setIcn3dui($(this).attr('id'));
5851
5851
  me.htmlCls.dialogCls.openDlg('dl_pdbfile_app', 'Please append PDB Files');
5852
5852
  });
5853
5853
 
5854
- me.myEventCls.onIds("#" + me.pre + "mn1_mol2file", "click", function(e) { me.icn3d; //e.preventDefault();
5854
+ me.myEventCls.onIds("#" + me.pre + "mn1_mol2file", "click", function(e) { me.icn3d; e.preventDefault();
5855
5855
  me.htmlCls.dialogCls.openDlg('dl_mol2file', 'Please input Mol2 File');
5856
5856
  });
5857
5857
 
5858
- me.myEventCls.onIds("#" + me.pre + "mn1_sdffile", "click", function(e) { me.icn3d; //e.preventDefault();
5858
+ me.myEventCls.onIds("#" + me.pre + "mn1_sdffile", "click", function(e) { me.icn3d; e.preventDefault();
5859
5859
  me.htmlCls.dialogCls.openDlg('dl_sdffile', 'Please input SDF File');
5860
5860
  });
5861
5861
 
5862
- me.myEventCls.onIds("#" + me.pre + "mn1_xyzfile", "click", function(e) { me.icn3d; //e.preventDefault();
5862
+ me.myEventCls.onIds("#" + me.pre + "mn1_xyzfile", "click", function(e) { me.icn3d; e.preventDefault();
5863
5863
  me.htmlCls.dialogCls.openDlg('dl_xyzfile', 'Please input XYZ File');
5864
5864
  });
5865
5865
 
5866
- me.myEventCls.onIds("#" + me.pre + "mn1_afmapfile", "click", function(e) { me.icn3d; //e.preventDefault();
5866
+ me.myEventCls.onIds("#" + me.pre + "mn1_afmapfile", "click", function(e) { me.icn3d; e.preventDefault();
5867
5867
  me.htmlCls.dialogCls.openDlg('dl_afmapfile', 'Please input AlphaFold PAE File');
5868
5868
  });
5869
5869
 
5870
- me.myEventCls.onIds("#" + me.pre + "mn1_urlfile", "click", function(e) { me.icn3d; //e.preventDefault();
5870
+ me.myEventCls.onIds("#" + me.pre + "mn1_urlfile", "click", function(e) { me.icn3d; e.preventDefault();
5871
5871
  me.htmlCls.dialogCls.openDlg('dl_urlfile', 'Load data by URL');
5872
5872
  });
5873
5873
 
5874
- me.myEventCls.onIds("#" + me.pre + "mn1_fixedversion", "click", function(e) { me.icn3d; //e.preventDefault();
5874
+ me.myEventCls.onIds("#" + me.pre + "mn1_fixedversion", "click", function(e) { me.icn3d; e.preventDefault();
5875
5875
  me.htmlCls.dialogCls.openDlg('dl_fixedversion', 'Open Share Link URL in the archived version of iCn3D');
5876
5876
  });
5877
- me.myEventCls.onIds("#" + me.pre + "reload_fixedversion", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
5877
+ me.myEventCls.onIds("#" + me.pre + "reload_fixedversion", "click", function(e) { let ic = me.icn3d; e.preventDefault();
5878
5878
  let url = $("#" + me.pre + "sharelinkurl").val();
5879
5879
  thisClass.setLogCmd("open " + url, false);
5880
5880
  localStorage.setItem('fixedversion', '1');
@@ -5882,65 +5882,65 @@ class ClickMenu {
5882
5882
  window.open(url, urlTarget);
5883
5883
  });
5884
5884
 
5885
- me.myEventCls.onIds("#" + me.pre + "mn1_mmciffile", "click", function(e) { me.icn3d; //e.preventDefault();
5885
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmciffile", "click", function(e) { me.icn3d; e.preventDefault();
5886
5886
  me.htmlCls.dialogCls.openDlg('dl_mmciffile', 'Please input mmCIF File');
5887
5887
  });
5888
5888
 
5889
- me.myEventCls.onIds("#" + me.pre + "mn1_mmcifid", "click", function(e) { me.icn3d; //e.preventDefault();
5889
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmcifid", "click", function(e) { me.icn3d; e.preventDefault();
5890
5890
  me.htmlCls.dialogCls.openDlg('dl_mmcifid', 'Please input mmCIF ID');
5891
5891
  });
5892
5892
 
5893
- me.myEventCls.onIds("#" + me.pre + "mn1_mmdbid", "click", function(e) { me.icn3d; //e.preventDefault();
5893
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmdbid", "click", function(e) { me.icn3d; e.preventDefault();
5894
5894
  me.htmlCls.dialogCls.openDlg('dl_mmdbid', 'Please input MMDB or PDB ID');
5895
5895
  });
5896
5896
 
5897
- me.myEventCls.onIds(["#" + me.pre + "mn1_mmdbafid", , "#" + me.pre + "tool_mmdbafid"], "click", function(e) { me.icn3d; //e.preventDefault();
5897
+ me.myEventCls.onIds(["#" + me.pre + "mn1_mmdbafid", , "#" + me.pre + "tool_mmdbafid"], "click", function(e) { me.icn3d; e.preventDefault();
5898
5898
  me.htmlCls.dialogCls.openDlg('dl_mmdbafid', 'Please input PDB/MMDB/AlphaFold UniProt IDs');
5899
5899
  });
5900
5900
 
5901
- me.myEventCls.onIds("#" + me.pre + "mn1_blast_rep_id", "click", function(e) { me.icn3d; //e.preventDefault();
5901
+ me.myEventCls.onIds("#" + me.pre + "mn1_blast_rep_id", "click", function(e) { me.icn3d; e.preventDefault();
5902
5902
  me.htmlCls.dialogCls.openDlg('dl_blast_rep_id', 'Align sequence to structure');
5903
5903
  });
5904
5904
 
5905
- me.myEventCls.onIds("#" + me.pre + "mn1_gi", "click", function(e) { me.icn3d; //e.preventDefault();
5905
+ me.myEventCls.onIds("#" + me.pre + "mn1_gi", "click", function(e) { me.icn3d; e.preventDefault();
5906
5906
  me.htmlCls.dialogCls.openDlg('dl_gi', 'Please input protein gi');
5907
5907
  });
5908
5908
 
5909
- me.myEventCls.onIds("#" + me.pre + "mn1_cid", "click", function(e) { me.icn3d; //e.preventDefault();
5909
+ me.myEventCls.onIds("#" + me.pre + "mn1_cid", "click", function(e) { me.icn3d; e.preventDefault();
5910
5910
  me.htmlCls.dialogCls.openDlg('dl_cid', 'Please input PubChem CID');
5911
5911
  });
5912
5912
 
5913
- me.myEventCls.onIds("#" + me.pre + "mn1_pngimage", "click", function(e) { me.icn3d; //e.preventDefault();
5913
+ me.myEventCls.onIds("#" + me.pre + "mn1_pngimage", "click", function(e) { me.icn3d; e.preventDefault();
5914
5914
  me.htmlCls.dialogCls.openDlg('dl_pngimage', 'Please input the PNG image');
5915
5915
  });
5916
5916
 
5917
- me.myEventCls.onIds("#" + me.pre + "mn1_state", "click", function(e) { me.icn3d; //e.preventDefault();
5917
+ me.myEventCls.onIds("#" + me.pre + "mn1_state", "click", function(e) { me.icn3d; e.preventDefault();
5918
5918
  me.htmlCls.dialogCls.openDlg('dl_state', 'Please input the state file');
5919
5919
  });
5920
5920
 
5921
- me.myEventCls.onIds("#" + me.pre + "mn1_selection", "click", function(e) { me.icn3d; //e.preventDefault();
5921
+ me.myEventCls.onIds("#" + me.pre + "mn1_selection", "click", function(e) { me.icn3d; e.preventDefault();
5922
5922
  me.htmlCls.dialogCls.openDlg('dl_selection', 'Please input the selection file');
5923
5923
  });
5924
5924
 
5925
- me.myEventCls.onIds("#" + me.pre + "mn1_dsn6", "click", function(e) { me.icn3d; //e.preventDefault();
5925
+ me.myEventCls.onIds("#" + me.pre + "mn1_dsn6", "click", function(e) { me.icn3d; e.preventDefault();
5926
5926
  me.htmlCls.dialogCls.openDlg('dl_dsn6', 'Please input the DSN6 file to display electron density map');
5927
5927
  });
5928
5928
 
5929
5929
 
5930
- me.myEventCls.onIds(["#" + me.pre + "mn1_delphi", "#" + me.pre + "mn1_delphi2", "#" + me.pre + "tool_delphi"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
5930
+ me.myEventCls.onIds(["#" + me.pre + "mn1_delphi", "#" + me.pre + "mn1_delphi2", "#" + me.pre + "tool_delphi"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
5931
5931
  ic.loadPhiFrom = 'delphi';
5932
5932
  $("#" + me.pre + "dl_delphi_tabs").tabs();
5933
5933
  me.htmlCls.dialogCls.openDlg('dl_delphi', 'Please set parameters to display DelPhi potential map');
5934
5934
  });
5935
5935
 
5936
- me.myEventCls.onIds("#" + me.pre + "mn1_phi", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
5936
+ me.myEventCls.onIds("#" + me.pre + "mn1_phi", "click", function(e) { let ic = me.icn3d; e.preventDefault();
5937
5937
  ic.loadPhiFrom = 'phi';
5938
5938
  $("#" + me.pre + "dl_phi_tabs").tabs();
5939
5939
  $("#" + me.pre + "phitab1_tabs").tabs();
5940
5940
  $("#" + me.pre + "phitab2_tabs").tabs();
5941
5941
  me.htmlCls.dialogCls.openDlg('dl_phi', 'Please input local phi or cube file to display DelPhi potential map');
5942
5942
  });
5943
- me.myEventCls.onIds("#" + me.pre + "mn1_phiurl", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
5943
+ me.myEventCls.onIds("#" + me.pre + "mn1_phiurl", "click", function(e) { let ic = me.icn3d; e.preventDefault();
5944
5944
  ic.loadPhiFrom = 'phiurl';
5945
5945
  $("#" + me.pre + "dl_phiurl_tabs").tabs();
5946
5946
  $("#" + me.pre + "phiurltab1_tabs").tabs();
@@ -5949,11 +5949,11 @@ class ClickMenu {
5949
5949
  });
5950
5950
 
5951
5951
 
5952
- me.myEventCls.onIds("#" + me.pre + "mn1_dsn6url", "click", function(e) { me.icn3d; //e.preventDefault();
5952
+ me.myEventCls.onIds("#" + me.pre + "mn1_dsn6url", "click", function(e) { me.icn3d; e.preventDefault();
5953
5953
  me.htmlCls.dialogCls.openDlg('dl_dsn6url', 'Please input the DSN6 file to display electron density map');
5954
5954
  });
5955
5955
 
5956
- me.myEventCls.onIds("#" + me.pre + "mn1_exportState", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
5956
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportState", "click", function(e) { let ic = me.icn3d; e.preventDefault();
5957
5957
  thisClass.setLogCmd("export state file", false);
5958
5958
  let file_pref =(ic.inputid) ? ic.inputid : "custom";
5959
5959
 
@@ -5961,19 +5961,19 @@ class ClickMenu {
5961
5961
  });
5962
5962
 
5963
5963
 
5964
- me.myEventCls.onIds("#" + me.pre + "mn1_exportPdbRes", "click", function(e) { me.icn3d; //e.preventDefault();
5964
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportPdbRes", "click", function(e) { me.icn3d; e.preventDefault();
5965
5965
  me.htmlCls.setHtmlCls.exportPdb();
5966
5966
 
5967
5967
  thisClass.setLogCmd("export pdb", true);
5968
5968
  });
5969
5969
 
5970
- me.myEventCls.onIds("#" + me.pre + "mn1_exportSecondary", "click", function(e) { me.icn3d; //e.preventDefault();
5970
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportSecondary", "click", function(e) { me.icn3d; e.preventDefault();
5971
5971
  me.htmlCls.setHtmlCls.exportSecondary();
5972
5972
 
5973
5973
  thisClass.setLogCmd("export secondary structure", true);
5974
5974
  });
5975
5975
 
5976
- me.myEventCls.onIds(["#" + me.pre + "delphipdb", "#" + me.pre + "phipdb"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
5976
+ me.myEventCls.onIds(["#" + me.pre + "delphipdb", "#" + me.pre + "phipdb"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
5977
5977
  let pdbStr = ic.saveFileCls.getSelectedResiduePDB();
5978
5978
 
5979
5979
  thisClass.setLogCmd("export PDB of selected residues", false);
@@ -5981,42 +5981,42 @@ class ClickMenu {
5981
5981
  ic.saveFileCls.saveFile(file_pref + '_icn3d_residues.pdb', 'text', [pdbStr]);
5982
5982
  });
5983
5983
 
5984
- me.myEventCls.onIds(["#" + me.pre + "delphipqr", "#" + me.pre + "phipqr", "#" + me.pre + "phiurlpqr"], "click", async function(e) { me.icn3d; //e.preventDefault();
5984
+ me.myEventCls.onIds(["#" + me.pre + "delphipqr", "#" + me.pre + "phipqr", "#" + me.pre + "phiurlpqr"], "click", async function(e) { me.icn3d; e.preventDefault();
5985
5985
  await me.htmlCls.setHtmlCls.exportPqr();
5986
5986
  thisClass.setLogCmd("export pqr", true);
5987
5987
  });
5988
5988
 
5989
- // me.myEventCls.onIds("#" + me.pre + "delphipqbh", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
5989
+ // me.myEventCls.onIds("#" + me.pre + "delphipqbh", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
5990
5990
  // let bPdb = true;
5991
5991
  // await me.htmlCls.setHtmlCls.exportPqr(bPdb);
5992
5992
  // thisClass.setLogCmd("export pdbh", false);
5993
5993
  // });
5994
5994
 
5995
- me.myEventCls.onIds("#" + me.pre + "profixpdb", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
5995
+ me.myEventCls.onIds("#" + me.pre + "profixpdb", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
5996
5996
  let bHydrogen = false;
5997
5997
  await ic.scapCls.exportPdbProfix(bHydrogen);
5998
5998
  thisClass.setLogCmd("export pdb missing atoms", true);
5999
5999
  });
6000
6000
 
6001
- me.myEventCls.onIds("#" + me.pre + "profixpdbh", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6001
+ me.myEventCls.onIds("#" + me.pre + "profixpdbh", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6002
6002
  let bHydrogen = true;
6003
6003
  await ic.scapCls.exportPdbProfix(bHydrogen);
6004
6004
  thisClass.setLogCmd("export pdb hydrogen", true);
6005
6005
  });
6006
6006
 
6007
- me.myEventCls.onIds("#" + me.pre + "mn1_exportStl", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6007
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportStl", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6008
6008
  thisClass.setLogCmd("export stl file", false);
6009
6009
  //ic.threeDPrintCls.hideStabilizer();
6010
6010
  ic.export3DCls.exportStlFile('');
6011
6011
  });
6012
6012
 
6013
- me.myEventCls.onIds("#" + me.pre + "mn1_exportVrml", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6013
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportVrml", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6014
6014
  thisClass.setLogCmd("export vrml file", false);
6015
6015
  //ic.threeDPrintCls.hideStabilizer();
6016
6016
  ic.export3DCls.exportVrmlFile('');
6017
6017
  });
6018
6018
 
6019
- me.myEventCls.onIds("#" + me.pre + "mn1_exportStlStab", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6019
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportStlStab", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6020
6020
  thisClass.setLogCmd("export stl stabilizer file", false);
6021
6021
  //ic.bRender = false;
6022
6022
  ic.threeDPrintCls.hideStabilizer();
@@ -6025,7 +6025,7 @@ class ClickMenu {
6025
6025
  ic.export3DCls.exportStlFile('_stab');
6026
6026
  });
6027
6027
 
6028
- me.myEventCls.onIds("#" + me.pre + "mn1_exportVrmlStab", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6028
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportVrmlStab", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6029
6029
  thisClass.setLogCmd("export vrml stabilizer file", false);
6030
6030
  //ic.bRender = false;
6031
6031
  ic.threeDPrintCls.hideStabilizer();
@@ -6034,13 +6034,13 @@ class ClickMenu {
6034
6034
  ic.export3DCls.exportVrmlFile('_stab');
6035
6035
  });
6036
6036
 
6037
- me.myEventCls.onIds("#" + me.pre + "mn6_exportInteraction", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6037
+ me.myEventCls.onIds("#" + me.pre + "mn6_exportInteraction", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6038
6038
  thisClass.setLogCmd("export interactions", false);
6039
6039
  if(me.cfg.mmdbid !== undefined) await ic.viewInterPairsCls.retrieveInteractionData();
6040
6040
  ic.viewInterPairsCls.exportInteractions();
6041
6041
  });
6042
6042
 
6043
- me.myEventCls.onIds(["#" + me.pre + "mn1_exportCanvas", "#" + me.pre + "saveimage"], "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6043
+ me.myEventCls.onIds(["#" + me.pre + "mn1_exportCanvas", "#" + me.pre + "saveimage"], "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6044
6044
  // do not record the export command
6045
6045
  //thisClass.setLogCmd("export canvas", true);
6046
6046
  thisClass.setLogCmd("export canvas", false);
@@ -6049,28 +6049,28 @@ class ClickMenu {
6049
6049
  let bPngHtml = true;
6050
6050
  await ic.shareLinkCls.shareLink(bPngHtml);
6051
6051
  });
6052
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas1", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6052
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas1", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6053
6053
  thisClass.setLogCmd("export canvas 1", true);
6054
6054
  ic.scaleFactor = 1;
6055
6055
  await ic.shareLinkCls.shareLink(true, true);
6056
6056
  });
6057
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas2", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6057
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas2", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6058
6058
  thisClass.setLogCmd("export canvas 2", true);
6059
6059
  ic.scaleFactor = 2;
6060
6060
  await ic.shareLinkCls.shareLink(true, true);
6061
6061
  });
6062
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas4", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6062
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas4", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6063
6063
  thisClass.setLogCmd("export canvas 4", true);
6064
6064
  ic.scaleFactor = 4;
6065
6065
  await ic.shareLinkCls.shareLink(true, true);
6066
6066
  });
6067
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas8", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6067
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas8", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6068
6068
  thisClass.setLogCmd("export canvas 8", true);
6069
6069
  ic.scaleFactor = 8;
6070
6070
  await ic.shareLinkCls.shareLink(true, true);
6071
6071
  });
6072
6072
 
6073
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCounts", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6073
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCounts", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6074
6074
  thisClass.setLogCmd("export counts", false);
6075
6075
  let text = '<html><body><div style="text-align:center"><br><b>Total Count for atoms with coordinates</b>:<br/><table align=center border=1 cellpadding=10 cellspacing=0><tr><th>Structure Count</th><th>Chain Count</th><th>Residue Count</th><th>Atom Count</th></tr>';
6076
6076
  text += '<tr><td>' + Object.keys(ic.structures).length + '</td><td>' + Object.keys(ic.chains).length + '</td><td>' + Object.keys(ic.residues).length + '</td><td>' + Object.keys(ic.atoms).length + '</td></tr>';
@@ -6097,7 +6097,7 @@ class ClickMenu {
6097
6097
  ic.saveFileCls.saveFile(file_pref + '_counts.html', 'html', text);
6098
6098
  });
6099
6099
 
6100
- me.myEventCls.onIds("#" + me.pre + "mn1_exportSelections", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6100
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportSelections", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6101
6101
  thisClass.setLogCmd("export all selections", false);
6102
6102
 
6103
6103
  thisClass.SetChainsAdvancedMenu();
@@ -6107,7 +6107,7 @@ class ClickMenu {
6107
6107
  ic.saveFileCls.saveFile(file_pref + '_selections.txt', 'text', [text]);
6108
6108
  });
6109
6109
 
6110
- me.myEventCls.onIds("#" + me.pre + "mn1_exportSelDetails", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6110
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportSelDetails", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6111
6111
  thisClass.setLogCmd("export all selections with details", false);
6112
6112
 
6113
6113
  thisClass.SetChainsAdvancedMenu();
@@ -6118,32 +6118,32 @@ class ClickMenu {
6118
6118
  ic.saveFileCls.saveFile(file_pref + '_sel_details.txt', 'text', [text]);
6119
6119
  });
6120
6120
 
6121
- me.myEventCls.onIds(["#" + me.pre + "mn1_sharelink", "#" + me.pre + "tool_sharelink"], "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6121
+ me.myEventCls.onIds(["#" + me.pre + "mn1_sharelink", "#" + me.pre + "tool_sharelink"], "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6122
6122
  await ic.shareLinkCls.shareLink();
6123
6123
  });
6124
6124
 
6125
- me.myEventCls.onIds("#" + me.pre + "mn1_replayon", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6125
+ me.myEventCls.onIds("#" + me.pre + "mn1_replayon", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6126
6126
  await ic.resizeCanvasCls.replayon();
6127
6127
  thisClass.setLogCmd("replay on", true);
6128
6128
  });
6129
- me.myEventCls.onIds("#" + me.pre + "mn1_replayoff", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6129
+ me.myEventCls.onIds("#" + me.pre + "mn1_replayoff", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6130
6130
  await ic.resizeCanvasCls.replayoff();
6131
6131
  thisClass.setLogCmd("replay off", true);
6132
6132
  });
6133
6133
 
6134
- me.myEventCls.onIds("#" + me.pre + "mn1_menuall", "click", function(e) { me.icn3d; //e.preventDefault();
6134
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuall", "click", function(e) { me.icn3d; e.preventDefault();
6135
6135
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
6136
6136
 
6137
6137
  thisClass.applyShownMenus();
6138
6138
  });
6139
6139
 
6140
- me.myEventCls.onIds("#" + me.pre + "mn1_menusimple", "click", function(e) { me.icn3d; //e.preventDefault();
6140
+ me.myEventCls.onIds("#" + me.pre + "mn1_menusimple", "click", function(e) { me.icn3d; e.preventDefault();
6141
6141
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
6142
6142
 
6143
6143
  thisClass.applyShownMenus();
6144
6144
  });
6145
6145
 
6146
- me.myEventCls.onIds("#" + me.pre + "mn1_menupref", "click", function(e) { me.icn3d; //e.preventDefault();
6146
+ me.myEventCls.onIds("#" + me.pre + "mn1_menupref", "click", function(e) { me.icn3d; e.preventDefault();
6147
6147
  me.htmlCls.dialogCls.openDlg('dl_menupref', 'Select Menus');
6148
6148
 
6149
6149
  thisClass.getHiddenMenusFromCache();
@@ -6151,7 +6151,7 @@ class ClickMenu {
6151
6151
  thisClass.displayShownMenus();
6152
6152
  });
6153
6153
 
6154
- me.myEventCls.onIds(["#" + me.pre + "apply_menupref", "#" + me.pre + "apply_menupref2"], "click", function(e) { me.icn3d; //e.preventDefault();
6154
+ me.myEventCls.onIds(["#" + me.pre + "apply_menupref", "#" + me.pre + "apply_menupref2"], "click", function(e) { me.icn3d; e.preventDefault();
6155
6155
  var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
6156
6156
  me.htmlCls.shownMenus = {};
6157
6157
  for (var checkbox of checkboxes) {
@@ -6161,21 +6161,21 @@ class ClickMenu {
6161
6161
  thisClass.applyShownMenus();
6162
6162
  });
6163
6163
 
6164
- me.myEventCls.onIds(["#" + me.pre + "reset_menupref", "#" + me.pre + "reset_menupref2"], "click", function(e) { me.icn3d; //e.preventDefault();
6164
+ me.myEventCls.onIds(["#" + me.pre + "reset_menupref", "#" + me.pre + "reset_menupref2"], "click", function(e) { me.icn3d; e.preventDefault();
6165
6165
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
6166
6166
 
6167
6167
  thisClass.applyShownMenus();
6168
6168
  thisClass.displayShownMenus();
6169
6169
  });
6170
6170
 
6171
- me.myEventCls.onIds(["#" + me.pre + "reset_menupref_all", "#" + me.pre + "reset_menupref_all2"], "click", function(e) { me.icn3d; //e.preventDefault();
6171
+ me.myEventCls.onIds(["#" + me.pre + "reset_menupref_all", "#" + me.pre + "reset_menupref_all2"], "click", function(e) { me.icn3d; e.preventDefault();
6172
6172
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
6173
6173
 
6174
6174
  thisClass.applyShownMenus();
6175
6175
  thisClass.displayShownMenus();
6176
6176
  });
6177
6177
 
6178
- me.myEventCls.onIds(["#" + me.pre + "savepref", "#" + me.pre + "savepref2"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6178
+ me.myEventCls.onIds(["#" + me.pre + "savepref", "#" + me.pre + "savepref2"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6179
6179
  let menuStr = '[';
6180
6180
 
6181
6181
  //var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
@@ -6192,7 +6192,7 @@ class ClickMenu {
6192
6192
  ic.saveFileCls.saveFile('icn3d_menus_pref.txt', 'text', [menuStr]);
6193
6193
  });
6194
6194
 
6195
- me.myEventCls.onIds("#" + me.pre + "reload_menupreffile", "click", function(e) { me.icn3d; //e.preventDefault();
6195
+ me.myEventCls.onIds("#" + me.pre + "reload_menupreffile", "click", function(e) { me.icn3d; e.preventDefault();
6196
6196
 
6197
6197
  if(!me.cfg.notebook) dialog.dialog( "close" );
6198
6198
  let file = $("#" + me.pre + "menupreffile")[0].files[0];
@@ -6223,25 +6223,25 @@ class ClickMenu {
6223
6223
  }
6224
6224
  });
6225
6225
 
6226
- me.myEventCls.onIds("#" + me.pre + "mn1_menuloadpref", "click", function(e) { me.icn3d; //e.preventDefault();
6226
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuloadpref", "click", function(e) { me.icn3d; e.preventDefault();
6227
6227
  me.htmlCls.dialogCls.openDlg('dl_menuloadpref', 'Please input the menu preference file');
6228
6228
  });
6229
6229
 
6230
6230
 
6231
- me.myEventCls.onIds("#" + me.pre + "mn1_link_structure", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6231
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_structure", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6232
6232
  let url = ic.saveFileCls.getLinkToStructureSummary(true);
6233
6233
  let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
6234
6234
  window.open(url, urlTarget);
6235
6235
  });
6236
6236
 
6237
- me.myEventCls.onIds("#" + me.pre + "mn1_link_bind", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6237
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_bind", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6238
6238
  url = "https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid=" + ic.inputid;
6239
6239
  thisClass.setLogCmd("link to 3D protein structures bound to CID " + ic.inputid + ": " + url, false);
6240
6240
  let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
6241
6241
  window.open(url, urlTarget);
6242
6242
  });
6243
6243
 
6244
- me.myEventCls.onIds("#" + me.pre + "mn1_link_vast", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6244
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_vast", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6245
6245
  if(ic.inputid === undefined) {
6246
6246
  url = "https://www.ncbi.nlm.nih.gov/pccompound?term=" + ic.molTitle;
6247
6247
  thisClass.setLogCmd("link to compounds " + ic.molTitle + ": " + url, false);
@@ -6270,7 +6270,7 @@ class ClickMenu {
6270
6270
  window.open(url, urlTarget);
6271
6271
  });
6272
6272
 
6273
- me.myEventCls.onIds("#" + me.pre + "mn1_link_pubmed", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6273
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_pubmed", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6274
6274
  if(ic.inputid === undefined) {
6275
6275
  let url;
6276
6276
  url = "https://www.ncbi.nlm.nih.gov/pubmed/?term=" + ic.molTitle;
@@ -6316,7 +6316,7 @@ class ClickMenu {
6316
6316
  }
6317
6317
  });
6318
6318
 
6319
- me.myEventCls.onIds("#" + me.pre + "mn1_link_protein", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6319
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_protein", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6320
6320
  //ic.saveFileCls.setEntrezLinks('protein');
6321
6321
  let structArray = Object.keys(ic.structures);
6322
6322
  let chainArray = Object.keys(ic.chains);
@@ -6341,19 +6341,19 @@ class ClickMenu {
6341
6341
 
6342
6342
  let thisClass = this;
6343
6343
 
6344
- me.myEventCls.onIds(["#" + me.pre + "mn6_selectannotations", "#" + me.pre + "tool_selectannotations"], "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6344
+ me.myEventCls.onIds(["#" + me.pre + "mn6_selectannotations", "#" + me.pre + "tool_selectannotations"], "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6345
6345
  await ic.showAnnoCls.showAnnotations();
6346
6346
  thisClass.setLogCmd("view annotations", true);
6347
6347
  //thisClass.setLogCmd("window annotations", true);
6348
6348
  });
6349
6349
 
6350
- me.myEventCls.onIds("#" + me.pre + "mn2_selectall", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6350
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectall", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6351
6351
  thisClass.setLogCmd("select all", true);
6352
6352
  ic.selectionCls.selectAll();
6353
6353
  ic.hlUpdateCls.removeHlAll();
6354
6354
  ic.drawCls.draw();
6355
6355
  });
6356
- me.myEventCls.onIds("#" + me.pre + "clearall", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6356
+ me.myEventCls.onIds("#" + me.pre + "clearall", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6357
6357
  thisClass.setLogCmd("clear all", true);
6358
6358
  ic.bSelectResidue = false;
6359
6359
  ic.selectionCls.selectAll();
@@ -6361,7 +6361,7 @@ class ClickMenu {
6361
6361
  ic.drawCls.draw();
6362
6362
  });
6363
6363
 
6364
- me.myEventCls.onIds("#" + me.pre + "mn2_selectdisplayed", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6364
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectdisplayed", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6365
6365
  thisClass.setLogCmd("select displayed set", true);
6366
6366
  //ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
6367
6367
  ic.hAtoms = me.hashUtilsCls.cloneHash(ic.viewSelectionAtoms);
@@ -6369,106 +6369,106 @@ class ClickMenu {
6369
6369
  //ic.drawCls.draw();
6370
6370
  });
6371
6371
 
6372
- me.myEventCls.onIds("#" + me.pre + "mn2_fullstru", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6372
+ me.myEventCls.onIds("#" + me.pre + "mn2_fullstru", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6373
6373
  thisClass.setLogCmd("show all", true);
6374
6374
  ic.selectionCls.showAll();
6375
6375
  });
6376
6376
 
6377
- me.myEventCls.onIds("#" + me.pre + "mn2_selectcomplement", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6377
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectcomplement", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6378
6378
  if(Object.keys(ic.hAtoms).length < Object.keys(ic.atoms).length) {
6379
6379
  thisClass.setLogCmd("select complement", true);
6380
6380
  ic.resid2specCls.selectComplement();
6381
6381
  }
6382
6382
  });
6383
6383
 
6384
- me.myEventCls.onIds("#" + me.pre + "mn2_selectmainchains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6384
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectmainchains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6385
6385
  thisClass.setLogCmd("select main chains", true);
6386
6386
  ic.selectionCls.selectMainChains();
6387
6387
  });
6388
6388
 
6389
- me.myEventCls.onIds("#" + me.pre + "mn2_selectsidechains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6389
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectsidechains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6390
6390
  thisClass.setLogCmd("select side chains", true);
6391
6391
  ic.selectionCls.selectSideChains();
6392
6392
  });
6393
6393
 
6394
- me.myEventCls.onIds("#" + me.pre + "mn2_selectmainsidechains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6394
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectmainsidechains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6395
6395
  thisClass.setLogCmd("select main side chains", true);
6396
6396
  ic.selectionCls.selectMainSideChains();
6397
6397
  });
6398
6398
 
6399
- me.myEventCls.onIds("#" + me.pre + "mn2_propPos", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6399
+ me.myEventCls.onIds("#" + me.pre + "mn2_propPos", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6400
6400
  thisClass.setLogCmd("select prop positive", true);
6401
6401
  ic.resid2specCls.selectProperty('positive');
6402
6402
  });
6403
- me.myEventCls.onIds("#" + me.pre + "mn2_propNeg", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6403
+ me.myEventCls.onIds("#" + me.pre + "mn2_propNeg", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6404
6404
  thisClass.setLogCmd("select prop negative", true);
6405
6405
  ic.resid2specCls.selectProperty('negative');
6406
6406
  });
6407
- me.myEventCls.onIds("#" + me.pre + "mn2_propHydro", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6407
+ me.myEventCls.onIds("#" + me.pre + "mn2_propHydro", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6408
6408
  thisClass.setLogCmd("select prop hydrophobic", true);
6409
6409
  ic.resid2specCls.selectProperty('hydrophobic');
6410
6410
  });
6411
- me.myEventCls.onIds("#" + me.pre + "mn2_propPolar", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6411
+ me.myEventCls.onIds("#" + me.pre + "mn2_propPolar", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6412
6412
  thisClass.setLogCmd("select prop polar", true);
6413
6413
  ic.resid2specCls.selectProperty('polar');
6414
6414
  });
6415
- me.myEventCls.onIds("#" + me.pre + "mn2_propBfactor", "click", function(e) { me.icn3d; //e.preventDefault();
6415
+ me.myEventCls.onIds("#" + me.pre + "mn2_propBfactor", "click", function(e) { me.icn3d; e.preventDefault();
6416
6416
  me.htmlCls.dialogCls.openDlg('dl_propbybfactor', 'Select residue based on B-factor');
6417
6417
  });
6418
- me.myEventCls.onIds("#" + me.pre + "mn2_propSolAcc", "click", function(e) { me.icn3d; //e.preventDefault();
6418
+ me.myEventCls.onIds("#" + me.pre + "mn2_propSolAcc", "click", function(e) { me.icn3d; e.preventDefault();
6419
6419
  me.htmlCls.dialogCls.openDlg('dl_propbypercentout', 'Select residue based on the percentage of solvent accessilbe surface area');
6420
6420
  });
6421
- me.myEventCls.onIds("#" + me.pre + "applypropbybfactor", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6421
+ me.myEventCls.onIds("#" + me.pre + "applypropbybfactor", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6422
6422
  let from = $("#" + me.pre + "minbfactor").val();
6423
6423
  let to = $("#" + me.pre + "maxbfactor").val();
6424
6424
  thisClass.setLogCmd("select prop b factor | " + from + '_' + to, true);
6425
6425
  ic.resid2specCls.selectProperty('b factor', from, to);
6426
6426
  });
6427
- me.myEventCls.onIds("#" + me.pre + "applypropbypercentout", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6427
+ me.myEventCls.onIds("#" + me.pre + "applypropbypercentout", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6428
6428
  let from = $("#" + me.pre + "minpercentout").val();
6429
6429
  let to = $("#" + me.pre + "maxpercentout").val();
6430
6430
  thisClass.setLogCmd("select prop percent out | " + from + '_' + to, true);
6431
6431
  ic.resid2specCls.selectProperty('percent out', from, to);
6432
6432
  });
6433
6433
 
6434
- me.myEventCls.onIds("#" + me.pre + "mn2_alignment", "click", function(e) { me.icn3d; //e.preventDefault();
6434
+ me.myEventCls.onIds("#" + me.pre + "mn2_alignment", "click", function(e) { me.icn3d; e.preventDefault();
6435
6435
  me.htmlCls.dialogCls.openDlg('dl_alignment', 'Select residues in aligned sequences');
6436
6436
  thisClass.setLogCmd("window aligned sequences", true);
6437
6437
  });
6438
6438
 
6439
- me.myEventCls.onIds("#" + me.pre + "mn1_window_table", "click", function(e) { me.icn3d; //e.preventDefault();
6439
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_table", "click", function(e) { me.icn3d; e.preventDefault();
6440
6440
  me.htmlCls.dialogCls.openDlg('dl_allinteraction', 'Show interactions');
6441
6441
  thisClass.setLogCmd("window interaction table", true);
6442
6442
  });
6443
- me.myEventCls.onIds("#" + me.pre + "mn1_window_linegraph", "click", function(e) { me.icn3d; //e.preventDefault();
6443
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_linegraph", "click", function(e) { me.icn3d; e.preventDefault();
6444
6444
  me.htmlCls.dialogCls.openDlg('dl_linegraph', 'Show interactions between two lines of residue nodes');
6445
6445
  thisClass.setLogCmd("window interaction graph", true);
6446
6446
  });
6447
- me.myEventCls.onIds("#" + me.pre + "mn1_window_scatterplot", "click", function(e) { me.icn3d; //e.preventDefault();
6447
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_scatterplot", "click", function(e) { me.icn3d; e.preventDefault();
6448
6448
  me.htmlCls.dialogCls.openDlg('dl_scatterplot', 'Show interactions as map');
6449
6449
  thisClass.setLogCmd("window interaction scatterplot", true);
6450
6450
  });
6451
- me.myEventCls.onIds("#" + me.pre + "mn1_window_graph", "click", function(e) { me.icn3d; //e.preventDefault();
6451
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_graph", "click", function(e) { me.icn3d; e.preventDefault();
6452
6452
  me.htmlCls.dialogCls.openDlg('dl_graph', 'Force-directed graph');
6453
6453
  thisClass.setLogCmd("window force-directed graph", true);
6454
6454
  });
6455
6455
 
6456
- me.myEventCls.onIds("#" + me.pre + "mn6_yournote", "click", function(e) { me.icn3d; //e.preventDefault();
6456
+ me.myEventCls.onIds("#" + me.pre + "mn6_yournote", "click", function(e) { me.icn3d; e.preventDefault();
6457
6457
  me.htmlCls.dialogCls.openDlg('dl_yournote', 'Your note about the current display');
6458
6458
  });
6459
6459
 
6460
- me.myEventCls.onIds("#" + me.pre + "applyyournote", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6460
+ me.myEventCls.onIds("#" + me.pre + "applyyournote", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6461
6461
  ic.yournote = $("#" + me.pre + "yournote").val();
6462
6462
  if(me.cfg.shownote) document.title = ic.yournote;
6463
6463
  if(!me.cfg.notebook) dialog.dialog( "close" );
6464
6464
  thisClass.setLogCmd('your note | ' + ic.yournote, true);
6465
6465
  });
6466
6466
 
6467
- me.myEventCls.onIds("#" + me.pre + "mn2_command", "click", function(e) { me.icn3d; //e.preventDefault();
6467
+ me.myEventCls.onIds("#" + me.pre + "mn2_command", "click", function(e) { me.icn3d; e.preventDefault();
6468
6468
  me.htmlCls.dialogCls.openDlg('dl_advanced2', 'Select by specification');
6469
6469
  });
6470
6470
 
6471
- me.myEventCls.onIds(["#" + me.pre + "mn2_definedsets", "#" + me.pre + "definedsets", "#" + me.pre + "definedsets2", "#" + me.pre + "tool_definedsets"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6471
+ me.myEventCls.onIds(["#" + me.pre + "mn2_definedsets", "#" + me.pre + "definedsets", "#" + me.pre + "definedsets2", "#" + me.pre + "tool_definedsets"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6472
6472
  ic.definedSetsCls.showSets();
6473
6473
  thisClass.setLogCmd('defined sets', true);
6474
6474
  //thisClass.setLogCmd('window defined sets', true);
@@ -6487,7 +6487,7 @@ class ClickMenu {
6487
6487
  });
6488
6488
 
6489
6489
 
6490
- me.myEventCls.onIds("#" + me.pre + "mn2_pkNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6490
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6491
6491
  ic.pk = 0;
6492
6492
  ic.opts['pk'] = 'no';
6493
6493
  thisClass.setLogCmd('set pk off', true);
@@ -6495,50 +6495,50 @@ class ClickMenu {
6495
6495
  ic.hlObjectsCls.removeHlObjects();
6496
6496
  });
6497
6497
 
6498
- me.myEventCls.onIds("#" + me.pre + "mn2_pkYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6498
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6499
6499
  ic.pk = 1;
6500
6500
  ic.opts['pk'] = 'atom';
6501
6501
  thisClass.setLogCmd('set pk atom', true);
6502
6502
  });
6503
6503
 
6504
- me.myEventCls.onIds("#" + me.pre + "mn2_pkResidue", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6504
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkResidue", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6505
6505
  ic.pk = 2;
6506
6506
  ic.opts['pk'] = 'residue';
6507
6507
  thisClass.setLogCmd('set pk residue', true);
6508
6508
  });
6509
6509
 
6510
- me.myEventCls.onIds("#" + me.pre + "mn2_pkStrand", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6510
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkStrand", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6511
6511
  ic.pk = 3;
6512
6512
  ic.opts['pk'] = 'strand';
6513
6513
  thisClass.setLogCmd('set pk strand', true);
6514
6514
  });
6515
6515
 
6516
- me.myEventCls.onIds("#" + me.pre + "mn2_pkDomain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6516
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkDomain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6517
6517
  ic.pk = 4;
6518
6518
  ic.opts['pk'] = 'domain';
6519
6519
  thisClass.setLogCmd('set pk domain', true);
6520
6520
  });
6521
6521
 
6522
- me.myEventCls.onIds("#" + me.pre + "mn2_pkChain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6522
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkChain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6523
6523
  ic.pk = 5;
6524
6524
  ic.opts['pk'] = 'chain';
6525
6525
  thisClass.setLogCmd('set pk chain', true);
6526
6526
  });
6527
6527
 
6528
- me.myEventCls.onIds("#" + me.pre + "adjustmem", "click", function(e) { me.icn3d; //e.preventDefault();
6528
+ me.myEventCls.onIds("#" + me.pre + "adjustmem", "click", function(e) { me.icn3d; e.preventDefault();
6529
6529
  me.htmlCls.dialogCls.openDlg('dl_adjustmem', 'Adjust the Z-axis positions of the membrane');
6530
6530
  });
6531
6531
 
6532
- me.myEventCls.onIds("#" + me.pre + "togglemem", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6532
+ me.myEventCls.onIds("#" + me.pre + "togglemem", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6533
6533
  ic.selectionCls.toggleMembrane();
6534
6534
  thisClass.setLogCmd('toggle membrane', true);
6535
6535
  });
6536
6536
 
6537
- me.myEventCls.onIds("#" + me.pre + "selectplane", "click", function(e) { me.icn3d; //e.preventDefault();
6537
+ me.myEventCls.onIds("#" + me.pre + "selectplane", "click", function(e) { me.icn3d; e.preventDefault();
6538
6538
  me.htmlCls.dialogCls.openDlg('dl_selectplane', 'Select a region between two planes');
6539
6539
  });
6540
6540
 
6541
- me.myEventCls.onIds(["#" + me.pre + "mn2_aroundsphere", "#" + me.pre + "tool_aroundsphere"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6541
+ me.myEventCls.onIds(["#" + me.pre + "mn2_aroundsphere", "#" + me.pre + "tool_aroundsphere"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6542
6542
  thisClass.SetChainsAdvancedMenu();
6543
6543
 
6544
6544
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
@@ -6555,7 +6555,7 @@ class ClickMenu {
6555
6555
  $("#" + me.pre + "atomsCustomSphere2").resizable();
6556
6556
  });
6557
6557
 
6558
- me.myEventCls.onIds(["#" + me.pre + "mn2_select_chain", "#" + me.pre + "definedSets"], "click", function(e) { me.icn3d; //e.preventDefault();
6558
+ me.myEventCls.onIds(["#" + me.pre + "mn2_select_chain", "#" + me.pre + "definedSets"], "click", function(e) { me.icn3d; e.preventDefault();
6559
6559
  me.htmlCls.dialogCls.openDlg('dl_select_chain', 'Select Structure/Chain/Custom Selection');
6560
6560
  });
6561
6561
 
@@ -6566,242 +6566,242 @@ class ClickMenu {
6566
6566
 
6567
6567
  let thisClass = this;
6568
6568
  // mn 3
6569
- me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsRibbon","#" + me.pre + "tool_proteinsRibbon"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6569
+ me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsRibbon","#" + me.pre + "tool_proteinsRibbon"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6570
6570
  ic.setOptionCls.setStyle('proteins', 'ribbon');
6571
6571
  thisClass.setLogCmd('style proteins ribbon', true);
6572
6572
  });
6573
6573
 
6574
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStrand", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6574
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStrand", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6575
6575
  ic.setOptionCls.setStyle('proteins', 'strand');
6576
6576
  thisClass.setLogCmd('style proteins strand', true);
6577
6577
  });
6578
6578
 
6579
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCylinder", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6579
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCylinder", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6580
6580
  ic.setOptionCls.setStyle('proteins', 'cylinder and plate');
6581
6581
  thisClass.setLogCmd('style proteins cylinder and plate', true);
6582
6582
  });
6583
6583
 
6584
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsSchematic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6584
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsSchematic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6585
6585
  ic.setOptionCls.setStyle('proteins', 'schematic');
6586
6586
  thisClass.setLogCmd('style proteins schematic', true);
6587
6587
  });
6588
6588
 
6589
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCalpha", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6589
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCalpha", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6590
6590
  ic.setOptionCls.setStyle('proteins', 'c alpha trace');
6591
6591
  thisClass.setLogCmd('style proteins c alpha trace', true);
6592
6592
  });
6593
6593
 
6594
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBackbone", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6594
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBackbone", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6595
6595
  ic.setOptionCls.setStyle('proteins', 'backbone');
6596
6596
  thisClass.setLogCmd('style proteins backbone', true);
6597
6597
  });
6598
6598
 
6599
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBfactor", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6599
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBfactor", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6600
6600
  ic.setOptionCls.setStyle('proteins', 'b factor tube');
6601
6601
  thisClass.setLogCmd('style proteins b factor tube', true);
6602
6602
  });
6603
6603
 
6604
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6604
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6605
6605
  ic.setOptionCls.setStyle('proteins', 'lines');
6606
6606
  thisClass.setLogCmd('style proteins lines', true);
6607
6607
  });
6608
6608
 
6609
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6609
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6610
6610
  ic.setOptionCls.setStyle('proteins', 'stick');
6611
6611
  thisClass.setLogCmd('style proteins stick', true);
6612
6612
  });
6613
6613
 
6614
- me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsBallstick", "#" + me.pre + "tool_proteinsBallstick"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6614
+ me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsBallstick", "#" + me.pre + "tool_proteinsBallstick"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6615
6615
  ic.setOptionCls.setStyle('proteins', 'ball and stick');
6616
6616
  thisClass.setLogCmd('style proteins ball and stick', true);
6617
6617
  });
6618
6618
 
6619
- me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsSphere", "#" + me.pre + "tool_proteinsSphere"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6619
+ me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsSphere", "#" + me.pre + "tool_proteinsSphere"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6620
6620
  ic.setOptionCls.setStyle('proteins', 'sphere');
6621
6621
  thisClass.setLogCmd('style proteins sphere', true);
6622
6622
  });
6623
6623
 
6624
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6624
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6625
6625
  ic.setOptionCls.setStyle('proteins', 'nothing');
6626
6626
  thisClass.setLogCmd('style proteins nothing', true);
6627
6627
  });
6628
6628
 
6629
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6629
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6630
6630
  ic.setOptionCls.setStyle('sidec', 'lines2');
6631
6631
  thisClass.setLogCmd('style sidec lines2', true);
6632
6632
  });
6633
6633
 
6634
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6634
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6635
6635
  ic.setOptionCls.setStyle('sidec', 'stick2');
6636
6636
  thisClass.setLogCmd('style sidec stick2', true);
6637
6637
  });
6638
6638
 
6639
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6639
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6640
6640
  ic.setOptionCls.setStyle('sidec', 'ball and stick2');
6641
6641
  thisClass.setLogCmd('style sidec ball and stick2', true);
6642
6642
  });
6643
6643
 
6644
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6644
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6645
6645
  ic.setOptionCls.setStyle('sidec', 'sphere2');
6646
6646
  thisClass.setLogCmd('style sidec sphere2', true);
6647
6647
  });
6648
6648
 
6649
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6649
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6650
6650
  ic.setOptionCls.setStyle('sidec', 'nothing');
6651
6651
  thisClass.setLogCmd('style sidec nothing', true);
6652
6652
  });
6653
6653
 
6654
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6654
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6655
6655
  ic.setOptionCls.setStyle('ntbase', 'lines2');
6656
6656
  thisClass.setLogCmd('style ntbase lines2', true);
6657
6657
  });
6658
6658
 
6659
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6659
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6660
6660
  ic.setOptionCls.setStyle('ntbase', 'stick2');
6661
6661
  thisClass.setLogCmd('style ntbase stick2', true);
6662
6662
  });
6663
6663
 
6664
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6664
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6665
6665
  ic.setOptionCls.setStyle('ntbase', 'ball and stick2');
6666
6666
  thisClass.setLogCmd('style ntbase ball and stick2', true);
6667
6667
  });
6668
6668
 
6669
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6669
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6670
6670
  ic.setOptionCls.setStyle('ntbase', 'sphere2');
6671
6671
  thisClass.setLogCmd('style ntbase sphere2', true);
6672
6672
  });
6673
6673
 
6674
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6674
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6675
6675
  ic.setOptionCls.setStyle('ntbase', 'nothing');
6676
6676
  thisClass.setLogCmd('style ntbase nothing', true);
6677
6677
  });
6678
6678
 
6679
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclCartoon", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6679
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclCartoon", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6680
6680
  ic.setOptionCls.setStyle('nucleotides', 'nucleotide cartoon');
6681
6681
  thisClass.setLogCmd('style nucleotides nucleotide cartoon', true);
6682
6682
  });
6683
6683
 
6684
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclBackbone", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6684
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclBackbone", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6685
6685
  ic.setOptionCls.setStyle('nucleotides', 'backbone');
6686
6686
  thisClass.setLogCmd('style nucleotides backbone', true);
6687
6687
  });
6688
6688
 
6689
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclSchematic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6689
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclSchematic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6690
6690
  ic.setOptionCls.setStyle('nucleotides', 'schematic');
6691
6691
  thisClass.setLogCmd('style nucleotides schematic', true);
6692
6692
  });
6693
6693
 
6694
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclPhos", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6694
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclPhos", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6695
6695
  ic.setOptionCls.setStyle('nucleotides', 'o3 trace');
6696
6696
  thisClass.setLogCmd('style nucleotides o3 trace', true);
6697
6697
  });
6698
6698
 
6699
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6699
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6700
6700
  ic.setOptionCls.setStyle('nucleotides', 'lines');
6701
6701
  thisClass.setLogCmd('style nucleotides lines', true);
6702
6702
  });
6703
6703
 
6704
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6704
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6705
6705
  ic.setOptionCls.setStyle('nucleotides', 'stick');
6706
6706
  thisClass.setLogCmd('style nucleotides stick', true);
6707
6707
  });
6708
6708
 
6709
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6709
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6710
6710
  ic.setOptionCls.setStyle('nucleotides', 'ball and stick');
6711
6711
  thisClass.setLogCmd('style nucleotides ball and stick', true);
6712
6712
  });
6713
6713
 
6714
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6714
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6715
6715
  ic.setOptionCls.setStyle('nucleotides', 'sphere');
6716
6716
  thisClass.setLogCmd('style nucleotides sphere', true);
6717
6717
  });
6718
6718
 
6719
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6719
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6720
6720
  ic.setOptionCls.setStyle('nucleotides', 'nothing');
6721
6721
  thisClass.setLogCmd('style nucleotides nothing', true);
6722
6722
  });
6723
6723
 
6724
- me.myEventCls.onIds("#" + me.pre + "mn3_ligLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6724
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6725
6725
  ic.setOptionCls.setStyle('chemicals', 'lines');
6726
6726
  thisClass.setLogCmd('style chemicals lines', true);
6727
6727
  });
6728
6728
 
6729
- me.myEventCls.onIds("#" + me.pre + "mn3_ligStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6729
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6730
6730
  ic.setOptionCls.setStyle('chemicals', 'stick');
6731
6731
  thisClass.setLogCmd('style chemicals stick', true);
6732
6732
  });
6733
6733
 
6734
- me.myEventCls.onIds("#" + me.pre + "mn3_ligBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6734
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6735
6735
  ic.setOptionCls.setStyle('chemicals', 'ball and stick');
6736
6736
  thisClass.setLogCmd('style chemicals ball and stick', true);
6737
6737
  });
6738
6738
 
6739
- me.myEventCls.onIds("#" + me.pre + "mn3_ligSchematic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6739
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligSchematic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6740
6740
  ic.setOptionCls.setStyle('chemicals', 'schematic');
6741
6741
  thisClass.setLogCmd('style chemicals schematic', true);
6742
6742
  });
6743
6743
 
6744
- me.myEventCls.onIds("#" + me.pre + "mn3_ligSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6744
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6745
6745
  ic.setOptionCls.setStyle('chemicals', 'sphere');
6746
6746
  thisClass.setLogCmd('style chemicals sphere', true);
6747
6747
  });
6748
6748
 
6749
- me.myEventCls.onIds("#" + me.pre + "mn3_ligNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6749
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6750
6750
  ic.setOptionCls.setStyle('chemicals', 'nothing');
6751
6751
  thisClass.setLogCmd('style chemicals nothing', true);
6752
6752
  });
6753
6753
 
6754
6754
 
6755
- me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6755
+ me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6756
6756
  ic.bGlycansCartoon = true;
6757
6757
  ic.drawCls.draw();
6758
6758
  thisClass.setLogCmd('glycans cartoon yes', true);
6759
6759
  });
6760
- me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6760
+ me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6761
6761
  ic.bGlycansCartoon = false;
6762
6762
  ic.drawCls.draw();
6763
6763
  thisClass.setLogCmd('glycans cartoon no', true);
6764
6764
  });
6765
6765
 
6766
6766
 
6767
- me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6767
+ me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6768
6768
  ic.showInterCls.showHydrogens();
6769
6769
  ic.drawCls.draw();
6770
6770
  thisClass.setLogCmd('hydrogens', true);
6771
6771
  });
6772
6772
 
6773
- me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6773
+ me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6774
6774
  ic.showInterCls.hideHydrogens();
6775
6775
  ic.drawCls.draw();
6776
6776
  thisClass.setLogCmd('set hydrogens off', true);
6777
6777
  });
6778
6778
 
6779
- me.myEventCls.onIds("#" + me.pre + "mn3_ionsSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6779
+ me.myEventCls.onIds("#" + me.pre + "mn3_ionsSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6780
6780
  ic.setOptionCls.setStyle('ions', 'sphere');
6781
6781
  thisClass.setLogCmd('style ions sphere', true);
6782
6782
  });
6783
6783
 
6784
- me.myEventCls.onIds("#" + me.pre + "mn3_ionsDot", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6784
+ me.myEventCls.onIds("#" + me.pre + "mn3_ionsDot", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6785
6785
  ic.setOptionCls.setStyle('ions', 'dot');
6786
6786
  thisClass.setLogCmd('style ions dot', true);
6787
6787
  });
6788
6788
 
6789
- me.myEventCls.onIds("#" + me.pre + "mn3_ionsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6789
+ me.myEventCls.onIds("#" + me.pre + "mn3_ionsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6790
6790
  ic.setOptionCls.setStyle('ions', 'nothing');
6791
6791
  thisClass.setLogCmd('style ions nothing', true);
6792
6792
  });
6793
6793
 
6794
- me.myEventCls.onIds("#" + me.pre + "mn3_waterSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6794
+ me.myEventCls.onIds("#" + me.pre + "mn3_waterSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6795
6795
  ic.setOptionCls.setStyle('water', 'sphere');
6796
6796
  thisClass.setLogCmd('style water sphere', true);
6797
6797
  });
6798
6798
 
6799
- me.myEventCls.onIds("#" + me.pre + "mn3_waterDot", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6799
+ me.myEventCls.onIds("#" + me.pre + "mn3_waterDot", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6800
6800
  ic.setOptionCls.setStyle('water', 'dot');
6801
6801
  thisClass.setLogCmd('style water dot', true);
6802
6802
  });
6803
6803
 
6804
- me.myEventCls.onIds("#" + me.pre + "mn3_waterNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6804
+ me.myEventCls.onIds("#" + me.pre + "mn3_waterNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6805
6805
  ic.setOptionCls.setStyle('water', 'nothing');
6806
6806
  thisClass.setLogCmd('style water nothing', true);
6807
6807
  });
@@ -6813,16 +6813,16 @@ class ClickMenu {
6813
6813
 
6814
6814
  let thisClass = this;
6815
6815
  // mn 4
6816
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrum", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6816
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrum", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6817
6817
  ic.setOptionCls.setOption('color', 'spectrum');
6818
6818
  thisClass.setLogCmd('color spectrum', true);
6819
6819
  });
6820
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumChain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6820
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumChain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6821
6821
  ic.setOptionCls.setOption('color', 'spectrum for chains');
6822
6822
  thisClass.setLogCmd('color spectrum for chains', true);
6823
6823
  });
6824
6824
 
6825
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumAcrossSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6825
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumAcrossSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6826
6826
  thisClass.SetChainsAdvancedMenu();
6827
6827
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
6828
6828
  if($("#" + me.pre + "atomsCustomColorSpectrumAcross").length) {
@@ -6833,7 +6833,7 @@ class ClickMenu {
6833
6833
  $("#" + me.pre + "atomsCustomColorSpectrumAcross").resizable();
6834
6834
  });
6835
6835
 
6836
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6836
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6837
6837
  thisClass.SetChainsAdvancedMenu();
6838
6838
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
6839
6839
  if($("#" + me.pre + "atomsCustomColorSpectrum").length) {
@@ -6844,7 +6844,7 @@ class ClickMenu {
6844
6844
  $("#" + me.pre + "atomsCustomColorSpectrum").resizable();
6845
6845
  });
6846
6846
 
6847
- me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowAcrossSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6847
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowAcrossSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6848
6848
  thisClass.SetChainsAdvancedMenu();
6849
6849
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
6850
6850
  if($("#" + me.pre + "atomsCustomColorRainbowAcross").length) {
@@ -6855,7 +6855,7 @@ class ClickMenu {
6855
6855
  $("#" + me.pre + "atomsCustomColorRainbowAcross").resizable();
6856
6856
  });
6857
6857
 
6858
- me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6858
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6859
6859
  thisClass.SetChainsAdvancedMenu();
6860
6860
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
6861
6861
  if($("#" + me.pre + "atomsCustomColorRainbow").length) {
@@ -6866,64 +6866,64 @@ class ClickMenu {
6866
6866
  $("#" + me.pre + "atomsCustomColorRainbow").resizable();
6867
6867
  });
6868
6868
 
6869
- me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbow", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6869
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbow", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6870
6870
  ic.setOptionCls.setOption('color', 'rainbow');
6871
6871
  thisClass.setLogCmd('color rainbow', true);
6872
6872
  });
6873
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrRainbowChain", "#" + me.pre + "tool_clrRainbowChain"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6873
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrRainbowChain", "#" + me.pre + "tool_clrRainbowChain"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6874
6874
  ic.setOptionCls.setOption('color', 'rainbow for chains');
6875
6875
  thisClass.setLogCmd('color rainbow for chains', true);
6876
6876
  });
6877
6877
 
6878
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrChain", "#" + me.pre + "tool_clrChain"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6878
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrChain", "#" + me.pre + "tool_clrChain"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6879
6879
  ic.setOptionCls.setOption('color', 'chain');
6880
6880
  thisClass.setLogCmd('color chain', true);
6881
6881
  });
6882
- me.myEventCls.onIds("#" + me.pre + "mn4_clrStructure", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6882
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrStructure", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6883
6883
  ic.setOptionCls.setOption('color', 'structure');
6884
6884
  thisClass.setLogCmd('color structure', true);
6885
6885
  });
6886
6886
 
6887
- me.myEventCls.onIds("#" + me.pre + "mn4_clrdomain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6887
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrdomain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6888
6888
  ic.setOptionCls.setOption('color', 'domain');
6889
6889
  thisClass.setLogCmd('color domain', true);
6890
6890
  });
6891
6891
 
6892
- me.myEventCls.onIds("#" + me.pre + "mn4_clrsets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6892
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrsets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6893
6893
  ic.setOptionCls.setOption('color', 'defined sets');
6894
6894
  thisClass.setLogCmd('color defined sets', true);
6895
6895
  });
6896
6896
 
6897
6897
 
6898
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrSSGreen", "#" + me.pre + "tool_clrSSGreen"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6898
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrSSGreen", "#" + me.pre + "tool_clrSSGreen"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6899
6899
  ic.sheetcolor = 'green';
6900
6900
  ic.setOptionCls.setOption('color', 'secondary structure green');
6901
6901
  thisClass.setLogCmd('color secondary structure green', true);
6902
6902
  });
6903
6903
 
6904
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSSYellow", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6904
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSSYellow", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6905
6905
  ic.sheetcolor = 'yellow';
6906
6906
  ic.setOptionCls.setOption('color', 'secondary structure yellow');
6907
6907
  thisClass.setLogCmd('color secondary structure yellow', true);
6908
6908
  });
6909
6909
 
6910
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSSSpectrum", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6910
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSSSpectrum", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6911
6911
  ic.setOptionCls.setOption('color', 'secondary structure spectrum');
6912
6912
  thisClass.setLogCmd('color secondary structure spectrum', true);
6913
6913
  });
6914
6914
 
6915
- me.myEventCls.onIds("#" + me.pre + "mn4_clrResidue", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6915
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrResidue", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6916
6916
  //ic.legendClick = 2;
6917
6917
  ic.setOptionCls.setOption('color', 'residue');
6918
6918
  thisClass.setLogCmd('color residue', true);
6919
6919
  });
6920
6920
 
6921
- me.myEventCls.onIds("#" + me.pre + "mn4_clrResidueCustom", "click", function(e) { me.icn3d; //e.preventDefault();
6921
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrResidueCustom", "click", function(e) { me.icn3d; e.preventDefault();
6922
6922
  //ic.legendClick = 2;
6923
6923
  me.htmlCls.dialogCls.openDlg('dl_rescolorfile', 'Please input the file on residue colors');
6924
6924
  });
6925
6925
 
6926
- me.myEventCls.onIds("#" + me.pre + "reload_rescolorfile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6926
+ me.myEventCls.onIds("#" + me.pre + "reload_rescolorfile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6927
6927
 
6928
6928
  if(!me.cfg.notebook) dialog.dialog( "close" );
6929
6929
  let file = $("#" + me.pre + "rescolorfile")[0].files[0];
@@ -6947,7 +6947,7 @@ class ClickMenu {
6947
6947
  }
6948
6948
  });
6949
6949
 
6950
- me.myEventCls.onIds("#" + me.pre + "reload_customcolorfile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6950
+ me.myEventCls.onIds("#" + me.pre + "reload_customcolorfile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6951
6951
 
6952
6952
  if(!me.cfg.notebook) dialog.dialog( "close" );
6953
6953
  ic.startColor = $("#" + me.pre + "startColor").val();
@@ -6956,18 +6956,18 @@ class ClickMenu {
6956
6956
 
6957
6957
  let legendHtml = thisClass.setLegendHtml();
6958
6958
  //$("#" + me.pre + "legend").html(legendHtml).show();
6959
- $("#" + me.pre + "dl_legend").html(legendHtml);
6959
+ $("#" + me.pre + "dl_legend_html").html(legendHtml);
6960
6960
  me.htmlCls.dialogCls.openDlg('dl_legend', 'Color range');
6961
6961
 
6962
6962
  ic.addTrackCls.setCustomFile('color', ic.startColor, ic.midColor, ic.endColor);
6963
6963
  });
6964
6964
 
6965
- me.myEventCls.onIds("#" + me.pre + "mn6_customref", "click", function(e) { me.icn3d; //e.preventDefault();
6965
+ me.myEventCls.onIds("#" + me.pre + "mn6_customref", "click", function(e) { me.icn3d; e.preventDefault();
6966
6966
 
6967
6967
  me.htmlCls.dialogCls.openDlg('dl_customref', 'Set custom reference numbers');
6968
6968
  });
6969
6969
 
6970
- me.myEventCls.onIds("#" + me.pre + "reload_customreffile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6970
+ me.myEventCls.onIds("#" + me.pre + "reload_customreffile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6971
6971
 
6972
6972
  if(!me.cfg.notebook) dialog.dialog( "close" );
6973
6973
 
@@ -6990,98 +6990,98 @@ class ClickMenu {
6990
6990
  }
6991
6991
  });
6992
6992
 
6993
- me.myEventCls.onIds("#" + me.pre + "remove_legend", "click", function(e) { me.icn3d; //e.preventDefault();
6993
+ me.myEventCls.onIds("#" + me.pre + "remove_legend", "click", function(e) { me.icn3d; e.preventDefault();
6994
6994
 
6995
6995
  $("#" + me.pre + "legend").hide();
6996
6996
 
6997
6997
  thisClass.setLogCmd('remove legend', true);
6998
6998
  });
6999
- me.myEventCls.onIds("#" + me.pre + "reload_customtubefile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6999
+ me.myEventCls.onIds("#" + me.pre + "reload_customtubefile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7000
7000
 
7001
7001
  if(!me.cfg.notebook) dialog.dialog( "close" );
7002
7002
  ic.addTrackCls.setCustomFile('tube');
7003
7003
  });
7004
7004
 
7005
- me.myEventCls.onIds("#" + me.pre + "mn4_clrCharge", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7005
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrCharge", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7006
7006
  //ic.legendClick = 3;
7007
7007
  ic.setOptionCls.setOption('color', 'charge');
7008
7008
  thisClass.setLogCmd('color charge', true);
7009
7009
  });
7010
7010
 
7011
- me.myEventCls.onIds("#" + me.pre + "mn4_clrHydrophobic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7011
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrHydrophobic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7012
7012
  //ic.legendClick = 4;
7013
7013
  ic.setOptionCls.setOption('color', 'hydrophobic');
7014
7014
  thisClass.setLogCmd('color hydrophobic', true);
7015
7015
  });
7016
7016
 
7017
- me.myEventCls.onIds("#" + me.pre + "mn4_clrNormalizedHP", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7017
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrNormalizedHP", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7018
7018
  //ic.legendClick = 4;
7019
7019
  ic.setOptionCls.setOption('color', 'normalized hydrophobic');
7020
7020
  thisClass.setLogCmd('color normalized hydrophobic', true);
7021
7021
  });
7022
7022
 
7023
7023
 
7024
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrAtom", "#" + me.pre + "tool_clrAtom"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7024
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrAtom", "#" + me.pre + "tool_clrAtom"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7025
7025
  //ic.legendClick = 1;
7026
7026
  ic.setOptionCls.setOption('color', 'atom');
7027
7027
  thisClass.setLogCmd('color atom', true);
7028
7028
  });
7029
7029
 
7030
- me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactor", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7030
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactor", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7031
7031
  //ic.legendClick = 5;
7032
7032
  ic.setOptionCls.setOption('color', 'b factor');
7033
7033
  thisClass.setLogCmd('color b factor', true);
7034
7034
  });
7035
7035
 
7036
- me.myEventCls.onIds("#" + me.pre + "mn4_clrConfidence", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7036
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrConfidence", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7037
7037
  //ic.legendClick = 6;
7038
7038
  ic.setOptionCls.setOption('color', 'confidence');
7039
7039
  thisClass.setLogCmd('color confidence', true);
7040
7040
  });
7041
7041
 
7042
- me.myEventCls.onIds("#" + me.pre + "mn4_clrIgstrand", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7042
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrIgstrand", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7043
7043
  //ic.legendClick = 6;
7044
7044
  ic.setOptionCls.setOption('color', 'ig strand');
7045
7045
  thisClass.setLogCmd('color ig strand', true);
7046
7046
  });
7047
7047
 
7048
- me.myEventCls.onIds("#" + me.pre + "mn4_clrIgproto", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7048
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrIgproto", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7049
7049
  //ic.legendClick = 6;
7050
7050
  ic.setOptionCls.setOption('color', 'ig protodomain');
7051
7051
  thisClass.setLogCmd('color ig protodomain', true);
7052
7052
  });
7053
7053
 
7054
7054
 
7055
- me.myEventCls.onIds("#" + me.pre + "mn4_clrArea", "click", function(e) { me.icn3d; //e.preventDefault();
7055
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrArea", "click", function(e) { me.icn3d; e.preventDefault();
7056
7056
  me.htmlCls.dialogCls.openDlg('dl_colorbyarea', "Color based on residue's solvent accessibility");
7057
7057
  });
7058
- me.myEventCls.onIds("#" + me.pre + "applycolorbyarea", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7058
+ me.myEventCls.onIds("#" + me.pre + "applycolorbyarea", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7059
7059
  ic.midpercent = $("#" + me.pre + 'midpercent').val();
7060
7060
  ic.setOptionCls.setOption('color', 'area');
7061
7061
  thisClass.setLogCmd('color area | ' + ic.midpercent, true);
7062
7062
 
7063
7063
  });
7064
7064
 
7065
- me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactorNorm", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7065
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactorNorm", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7066
7066
  ic.setOptionCls.setOption('color', 'b factor percentile');
7067
7067
  thisClass.setLogCmd('color b factor percentile', true);
7068
7068
  });
7069
7069
 
7070
- me.myEventCls.onIds("#" + me.pre + "mn4_clrIdentity", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7070
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrIdentity", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7071
7071
  ic.setOptionCls.setOption('color', 'identity');
7072
7072
  thisClass.setLogCmd('color identity', true);
7073
7073
  });
7074
7074
 
7075
- me.myEventCls.onIds("#" + me.pre + "mn4_clrConserved", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7075
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrConserved", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7076
7076
  ic.setOptionCls.setOption('color', 'conservation');
7077
7077
  thisClass.setLogCmd('color conservation', true);
7078
7078
  });
7079
7079
 
7080
- me.myEventCls.onIds("#" + me.pre + "mn4_clrCustom", "click", function(e) { me.icn3d; //e.preventDefault();
7080
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrCustom", "click", function(e) { me.icn3d; e.preventDefault();
7081
7081
  me.htmlCls.dialogCls.openDlg('dl_clr', 'Color picker');
7082
7082
  });
7083
7083
 
7084
- $(document).on("click", ".icn3d-color-rad-text", function(e) { let ic = me.icn3d; //e.preventDefault();
7084
+ $(document).on("click", ".icn3d-color-rad-text", function(e) { let ic = me.icn3d; e.preventDefault();
7085
7085
  e.stopImmediatePropagation();
7086
7086
  e.preventDefault();
7087
7087
  let color = $(this).attr('color');
@@ -7089,22 +7089,22 @@ class ClickMenu {
7089
7089
  thisClass.setLogCmd("color " + color, true);
7090
7090
  });
7091
7091
 
7092
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7092
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7093
7093
  ic.setOptionCls.saveColor();
7094
7094
  thisClass.setLogCmd('save color', true);
7095
7095
  });
7096
7096
 
7097
- me.myEventCls.onIds("#" + me.pre + "mn4_clrApplySave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7097
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrApplySave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7098
7098
  ic.setOptionCls.applySavedColor();
7099
7099
  thisClass.setLogCmd('apply saved color', true);
7100
7100
  });
7101
7101
 
7102
- me.myEventCls.onIds("#" + me.pre + "mn3_styleSave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7102
+ me.myEventCls.onIds("#" + me.pre + "mn3_styleSave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7103
7103
  ic.setOptionCls.saveStyle();
7104
7104
  thisClass.setLogCmd('save style', true);
7105
7105
  });
7106
7106
 
7107
- me.myEventCls.onIds("#" + me.pre + "mn3_styleApplySave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7107
+ me.myEventCls.onIds("#" + me.pre + "mn3_styleApplySave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7108
7108
  ic.setOptionCls.applySavedStyle();
7109
7109
  thisClass.setLogCmd('apply saved style', true);
7110
7110
  });
@@ -7116,7 +7116,7 @@ class ClickMenu {
7116
7116
 
7117
7117
  let thisClass = this;
7118
7118
  // mn 5
7119
- me.myEventCls.onIds("#" + me.pre + "mn5_neighborsYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7119
+ me.myEventCls.onIds("#" + me.pre + "mn5_neighborsYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7120
7120
  ic.bConsiderNeighbors = true;
7121
7121
  ic.applyMapCls.removeLastSurface();
7122
7122
  ic.applyMapCls.applySurfaceOptions();
@@ -7124,7 +7124,7 @@ class ClickMenu {
7124
7124
  thisClass.setLogCmd('set surface neighbors on', true);
7125
7125
  });
7126
7126
 
7127
- me.myEventCls.onIds("#" + me.pre + "mn5_neighborsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7127
+ me.myEventCls.onIds("#" + me.pre + "mn5_neighborsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7128
7128
  ic.bConsiderNeighbors = false;
7129
7129
  ic.applyMapCls.removeLastSurface();
7130
7130
  ic.applyMapCls.applySurfaceOptions();
@@ -7132,48 +7132,48 @@ class ClickMenu {
7132
7132
  thisClass.setLogCmd('set surface neighbors off', true);
7133
7133
  });
7134
7134
 
7135
- me.myEventCls.onIds(["#" + me.pre + "mn5_surfaceVDW", "#" + me.pre + "tool_surfaceVDW"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7135
+ me.myEventCls.onIds(["#" + me.pre + "mn5_surfaceVDW", "#" + me.pre + "tool_surfaceVDW"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7136
7136
  ic.bConsiderNeighbors = false;
7137
7137
  ic.setOptionCls.setOption('surface', 'Van der Waals surface');
7138
7138
  thisClass.setLogCmd('set surface Van der Waals surface', true);
7139
7139
  });
7140
7140
 
7141
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSAS", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7141
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSAS", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7142
7142
  ic.bConsiderNeighbors = false;
7143
7143
  ic.setOptionCls.setOption('surface', 'solvent accessible surface');
7144
7144
  thisClass.setLogCmd('set surface solvent accessible surface', true);
7145
7145
  });
7146
7146
 
7147
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecular", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7147
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecular", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7148
7148
  ic.bConsiderNeighbors = false;
7149
7149
  ic.setOptionCls.setOption('surface', 'molecular surface');
7150
7150
  thisClass.setLogCmd('set surface molecular surface', true);
7151
7151
  });
7152
7152
 
7153
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceVDWContext", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7153
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceVDWContext", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7154
7154
  ic.bConsiderNeighbors = true;
7155
7155
  ic.setOptionCls.setOption('surface', 'Van der Waals surface with context');
7156
7156
  thisClass.setLogCmd('set surface Van der Waals surface with context', true);
7157
7157
  });
7158
7158
 
7159
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSASContext", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7159
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSASContext", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7160
7160
  ic.bConsiderNeighbors = true;
7161
7161
  ic.setOptionCls.setOption('surface', 'solvent accessible surface with context');
7162
7162
  thisClass.setLogCmd('set surface solvent accessible surface with context', true);
7163
7163
  });
7164
7164
 
7165
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecularContext", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7165
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecularContext", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7166
7166
  ic.bConsiderNeighbors = true;
7167
7167
  ic.setOptionCls.setOption('surface', 'molecular surface with context');
7168
7168
  thisClass.setLogCmd('set surface molecular surface with context', true);
7169
7169
  });
7170
7170
 
7171
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7171
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7172
7172
  ic.setOptionCls.setOption('surface', 'nothing');
7173
7173
  thisClass.setLogCmd('set surface nothing', true);
7174
7174
  });
7175
7175
 
7176
- $(document).on("click", "." + me.pre + "mn5_opacity", function(e) { let ic = me.icn3d; //e.preventDefault();
7176
+ $(document).on("click", "." + me.pre + "mn5_opacity", function(e) { let ic = me.icn3d; e.preventDefault();
7177
7177
  ic.transparentRenderOrder = false;
7178
7178
 
7179
7179
  let value = $(this).attr('v');
@@ -7181,7 +7181,7 @@ class ClickMenu {
7181
7181
  thisClass.setLogCmd('set surface opacity ' + value, true);
7182
7182
  });
7183
7183
 
7184
- $(document).on("click", "." + me.pre + "mn5_opacityslow", function(e) { let ic = me.icn3d; //e.preventDefault();
7184
+ $(document).on("click", "." + me.pre + "mn5_opacityslow", function(e) { let ic = me.icn3d; e.preventDefault();
7185
7185
  ic.transparentRenderOrder = true;
7186
7186
 
7187
7187
  let value = $(this).attr('v');
@@ -7189,42 +7189,42 @@ class ClickMenu {
7189
7189
  thisClass.setLogCmd('set surface2 opacity ' + value, true);
7190
7190
  });
7191
7191
 
7192
- me.myEventCls.onIds("#" + me.pre + "mn5_wireframeYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7192
+ me.myEventCls.onIds("#" + me.pre + "mn5_wireframeYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7193
7193
  ic.setOptionCls.setOption('wireframe', 'yes');
7194
7194
  thisClass.setLogCmd('set surface wireframe on', true);
7195
7195
  });
7196
7196
 
7197
- me.myEventCls.onIds("#" + me.pre + "mn5_wireframeNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7197
+ me.myEventCls.onIds("#" + me.pre + "mn5_wireframeNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7198
7198
  ic.setOptionCls.setOption('wireframe', 'no');
7199
7199
  thisClass.setLogCmd('set surface wireframe off', true);
7200
7200
  });
7201
7201
 
7202
- me.myEventCls.onIds("#" + me.pre + "mn5_elecmap2fofc", "click", function(e) { me.icn3d; //e.preventDefault();
7202
+ me.myEventCls.onIds("#" + me.pre + "mn5_elecmap2fofc", "click", function(e) { me.icn3d; e.preventDefault();
7203
7203
  me.htmlCls.dialogCls.openDlg('dl_elecmap2fofc', '2Fo-Fc Electron Density Map');
7204
7204
  });
7205
7205
 
7206
- me.myEventCls.onIds("#" + me.pre + "mn5_elecmapfofc", "click", function(e) { me.icn3d; //e.preventDefault();
7206
+ me.myEventCls.onIds("#" + me.pre + "mn5_elecmapfofc", "click", function(e) { me.icn3d; e.preventDefault();
7207
7207
  me.htmlCls.dialogCls.openDlg('dl_elecmapfofc', 'Fo-Fc Electron Density Map');
7208
7208
  });
7209
7209
 
7210
- me.myEventCls.onIds(["#" + me.pre + "mn5_elecmapNo", "#" + me.pre + "elecmapNo2", "#" + me.pre + "elecmapNo3", "#" + me.pre + "elecmapNo4", "#" + me.pre + "elecmapNo5"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7210
+ me.myEventCls.onIds(["#" + me.pre + "mn5_elecmapNo", "#" + me.pre + "elecmapNo2", "#" + me.pre + "elecmapNo3", "#" + me.pre + "elecmapNo4", "#" + me.pre + "elecmapNo5"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7211
7211
  ic.setOptionCls.setOption('map', 'nothing');
7212
7212
  thisClass.setLogCmd('setoption map nothing', true);
7213
7213
  });
7214
7214
 
7215
- me.myEventCls.onIds(["#" + me.pre + "delphimapNo", "#" + me.pre + "phimapNo", "#" + me.pre + "phiurlmapNo", "#" + me.pre + "mn1_phimapNo"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7215
+ me.myEventCls.onIds(["#" + me.pre + "delphimapNo", "#" + me.pre + "phimapNo", "#" + me.pre + "phiurlmapNo", "#" + me.pre + "mn1_phimapNo"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7216
7216
  ic.setOptionCls.setOption('phimap', 'nothing');
7217
7217
  thisClass.setLogCmd('setoption phimap nothing', true);
7218
7218
  });
7219
7219
 
7220
- me.myEventCls.onIds(["#" + me.pre + "delphimapNo2", "#" + me.pre + "phimapNo2", "#" + me.pre + "phiurlmapNo2"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7220
+ me.myEventCls.onIds(["#" + me.pre + "delphimapNo2", "#" + me.pre + "phimapNo2", "#" + me.pre + "phiurlmapNo2"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7221
7221
  //ic.setOptionCls.setOption('surface', 'nothing');
7222
7222
  //thisClass.setLogCmd('set surface nothing', true);
7223
7223
  ic.setOptionCls.setOption('phisurface', 'nothing');
7224
7224
  thisClass.setLogCmd('setoption phisurface nothing', true);
7225
7225
  });
7226
7226
 
7227
- me.myEventCls.onIds("#" + me.pre + "applymap2fofc", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7227
+ me.myEventCls.onIds("#" + me.pre + "applymap2fofc", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7228
7228
 
7229
7229
  //if(!me.cfg.notebook) dialog.dialog( "close" );
7230
7230
  let sigma2fofc = parseFloat($("#" + me.pre + "sigma2fofc" ).val());
@@ -7234,7 +7234,7 @@ class ClickMenu {
7234
7234
  thisClass.setLogCmd('set map 2fofc sigma ' + sigma2fofc, true);
7235
7235
  });
7236
7236
 
7237
- me.myEventCls.onIds("#" + me.pre + "applymapfofc", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7237
+ me.myEventCls.onIds("#" + me.pre + "applymapfofc", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7238
7238
 
7239
7239
  //if(!me.cfg.notebook) dialog.dialog( "close" );
7240
7240
  let sigmafofc = parseFloat($("#" + me.pre + "sigmafofc" ).val());
@@ -7244,27 +7244,27 @@ class ClickMenu {
7244
7244
  thisClass.setLogCmd('set map fofc sigma ' + sigmafofc, true);
7245
7245
  });
7246
7246
 
7247
- me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7247
+ me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7248
7248
  //ic.dsn6ParserCls.dsn6Parser(ic.inputid);
7249
7249
  ic.setOptionCls.setOption('mapwireframe', 'yes');
7250
7250
  thisClass.setLogCmd('set map wireframe on', true);
7251
7251
  });
7252
7252
 
7253
- me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7253
+ me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7254
7254
  ic.setOptionCls.setOption('mapwireframe', 'no');
7255
7255
  thisClass.setLogCmd('set map wireframe off', true);
7256
7256
  });
7257
7257
 
7258
- me.myEventCls.onIds("#" + me.pre + "mn5_emmap", "click", function(e) { me.icn3d; //e.preventDefault();
7258
+ me.myEventCls.onIds("#" + me.pre + "mn5_emmap", "click", function(e) { me.icn3d; e.preventDefault();
7259
7259
  me.htmlCls.dialogCls.openDlg('dl_emmap', 'EM Density Map');
7260
7260
  });
7261
7261
 
7262
- me.myEventCls.onIds(["#" + me.pre + "mn5_emmapNo", "#" + me.pre + "emmapNo2"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7262
+ me.myEventCls.onIds(["#" + me.pre + "mn5_emmapNo", "#" + me.pre + "emmapNo2"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7263
7263
  ic.setOptionCls.setOption('emmap', 'nothing');
7264
7264
  thisClass.setLogCmd('setoption emmap nothing', true);
7265
7265
  });
7266
7266
 
7267
- me.myEventCls.onIds("#" + me.pre + "applyemmap", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7267
+ me.myEventCls.onIds("#" + me.pre + "applyemmap", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7268
7268
 
7269
7269
  //if(!me.cfg.notebook) dialog.dialog( "close" );
7270
7270
  let empercentage = parseFloat($("#" + me.pre + "empercentage" ).val());
@@ -7275,13 +7275,13 @@ class ClickMenu {
7275
7275
  thisClass.setLogCmd('set emmap percentage ' + empercentage, true);
7276
7276
  });
7277
7277
 
7278
- me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7278
+ me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7279
7279
  //ic.dsn6ParserCls.dsn6Parser(ic.inputid);
7280
7280
  ic.setOptionCls.setOption('emmapwireframe', 'yes');
7281
7281
  thisClass.setLogCmd('set emmap wireframe on', true);
7282
7282
  });
7283
7283
 
7284
- me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7284
+ me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7285
7285
  ic.setOptionCls.setOption('emmapwireframe', 'no');
7286
7286
  thisClass.setLogCmd('set emmap wireframe off', true);
7287
7287
  });
@@ -7293,37 +7293,53 @@ class ClickMenu {
7293
7293
 
7294
7294
  let thisClass = this;
7295
7295
  // mn 6
7296
- me.myEventCls.onIds("#" + me.pre + "mn6_assemblyYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7296
+ me.myEventCls.onIds("#" + me.pre + "mn6_assemblyYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7297
7297
  ic.bAssembly = true;
7298
7298
  thisClass.setLogCmd('set assembly on', true);
7299
7299
  ic.drawCls.draw();
7300
7300
  });
7301
7301
 
7302
- me.myEventCls.onIds("#" + me.pre + "mn6_assemblyNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7302
+ me.myEventCls.onIds("#" + me.pre + "mn6_assemblyNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7303
7303
  ic.bAssembly = false;
7304
7304
  thisClass.setLogCmd('set assembly off', true);
7305
7305
  ic.drawCls.draw();
7306
7306
  });
7307
7307
 
7308
- me.myEventCls.onIds("#" + me.pre + "mn6_igrefYes", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7308
+ me.myEventCls.onIds("#" + me.pre + "mn6_igrefYes", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7309
7309
  thisClass.setLogCmd('ig refnum on', true);
7310
7310
  await ic.refnumCls.showIgRefNum();
7311
+
7312
+ if(ic.bShowRefnum) {
7313
+ ic.opts.color = 'ig strand';
7314
+ ic.setColorCls.setColorByOptions(ic.opts, ic.atoms);
7315
+
7316
+ ic.selectionCls.selectAll_base();
7317
+ ic.hlUpdateCls.updateHlAll();
7318
+ ic.drawCls.draw();
7319
+ }
7311
7320
  });
7312
7321
 
7313
- me.myEventCls.onIds("#" + me.pre + "mn6_igrefNo", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7322
+ me.myEventCls.onIds("#" + me.pre + "mn6_igrefNo", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7314
7323
  thisClass.setLogCmd('ig refnum off', true);
7315
7324
  await ic.refnumCls.hideIgRefNum();
7325
+
7326
+ ic.opts.color = 'chain';
7327
+ ic.setColorCls.setColorByOptions(ic.opts, ic.atoms);
7328
+
7329
+ ic.selectionCls.selectAll_base();
7330
+ ic.hlUpdateCls.updateHlAll();
7331
+ ic.drawCls.draw();
7316
7332
  });
7317
7333
 
7318
7334
 
7319
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelAtoms", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7335
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelAtoms", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7320
7336
  ic.residueLabelsCls.addAtomLabels(ic.hAtoms);
7321
7337
  ic.selectionCls.saveSelectionIfSelected();
7322
7338
  thisClass.setLogCmd('add atom labels', true);
7323
7339
  ic.drawCls.draw();
7324
7340
  });
7325
7341
 
7326
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelElements", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7342
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelElements", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7327
7343
  ic.residueLabelsCls.addAtomLabels(ic.hAtoms, true);
7328
7344
  ic.selectionCls.saveSelectionIfSelected();
7329
7345
  thisClass.setLogCmd('add element labels', true);
@@ -7331,35 +7347,35 @@ class ClickMenu {
7331
7347
  });
7332
7348
 
7333
7349
 
7334
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResidues", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7350
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResidues", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7335
7351
  ic.residueLabelsCls.addResidueLabels(ic.hAtoms);
7336
7352
  ic.selectionCls.saveSelectionIfSelected();
7337
7353
  thisClass.setLogCmd('add residue labels', true);
7338
7354
  ic.drawCls.draw();
7339
7355
  });
7340
7356
 
7341
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResnum", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7357
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResnum", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7342
7358
  ic.residueLabelsCls.addResidueLabels(ic.hAtoms, undefined, undefined, true);
7343
7359
  ic.selectionCls.saveSelectionIfSelected();
7344
7360
  thisClass.setLogCmd('add residue number labels', true);
7345
7361
  ic.drawCls.draw();
7346
7362
  });
7347
7363
 
7348
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelChains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7364
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelChains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7349
7365
  ic.analysisCls.addChainLabels(ic.hAtoms);
7350
7366
  ic.selectionCls.saveSelectionIfSelected();
7351
7367
  thisClass.setLogCmd('add chain labels', true);
7352
7368
  ic.drawCls.draw();
7353
7369
  });
7354
7370
 
7355
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelTermini", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7371
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelTermini", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7356
7372
  ic.analysisCls.addTerminiLabels(ic.hAtoms);
7357
7373
  ic.selectionCls.saveSelectionIfSelected();
7358
7374
  thisClass.setLogCmd('add terminal labels', true);
7359
7375
  ic.drawCls.draw();
7360
7376
  });
7361
7377
 
7362
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7378
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7363
7379
  me.htmlCls.dialogCls.openDlg('dl_addlabel', 'Add custom labels by selection');
7364
7380
  ic.pk = 1;
7365
7381
  ic.opts['pk'] = 'atom';
@@ -7367,19 +7383,19 @@ class ClickMenu {
7367
7383
  ic.pAtomNum = 0;
7368
7384
  });
7369
7385
 
7370
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelSelection", "click", function(e) { me.icn3d; //e.preventDefault();
7386
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelSelection", "click", function(e) { me.icn3d; e.preventDefault();
7371
7387
  me.htmlCls.dialogCls.openDlg('dl_addlabelselection', 'Add custom labels by the selected');
7372
7388
  });
7373
7389
 
7374
- me.myEventCls.onIds("#" + me.pre + "mn6_labelColor", "click", function(e) { me.icn3d; //e.preventDefault();
7390
+ me.myEventCls.onIds("#" + me.pre + "mn6_labelColor", "click", function(e) { me.icn3d; e.preventDefault();
7375
7391
  me.htmlCls.dialogCls.openDlg('dl_labelColor', 'Change color for all labels');
7376
7392
  });
7377
7393
 
7378
- me.myEventCls.onIds(["#" + me.pre + "mn2_saveselection","#" + me.pre + "tool_saveselection"], "click", function(e) { me.icn3d; //e.preventDefault();
7394
+ me.myEventCls.onIds(["#" + me.pre + "mn2_saveselection","#" + me.pre + "tool_saveselection"], "click", function(e) { me.icn3d; e.preventDefault();
7379
7395
  me.htmlCls.dialogCls.openDlg('dl_saveselection', 'Save the selected');
7380
7396
  });
7381
7397
 
7382
- me.myEventCls.onIds(["#" + me.pre + "mn6_addlabelNo", "#" + me.pre + "removeLabels"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7398
+ me.myEventCls.onIds(["#" + me.pre + "mn6_addlabelNo", "#" + me.pre + "removeLabels"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7383
7399
  ic.labelcolor = undefined;
7384
7400
  ic.pickpair = false;
7385
7401
  //ic.labels['residue'] = [];
@@ -7394,14 +7410,14 @@ class ClickMenu {
7394
7410
  ic.drawCls.draw();
7395
7411
  });
7396
7412
 
7397
- $(document).on("click", "." + me.pre + "mn6_labelscale", function(e) { let ic = me.icn3d; //e.preventDefault();
7413
+ $(document).on("click", "." + me.pre + "mn6_labelscale", function(e) { let ic = me.icn3d; e.preventDefault();
7398
7414
  let value = $(this).attr('v');
7399
7415
  ic.labelScale = value;
7400
7416
  ic.drawCls.draw();
7401
7417
  thisClass.setLogCmd('set label scale ' + value, true);
7402
7418
  });
7403
7419
 
7404
- me.myEventCls.onIds("#" + me.pre + "mn6_distanceYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7420
+ me.myEventCls.onIds("#" + me.pre + "mn6_distanceYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7405
7421
  me.htmlCls.dialogCls.openDlg('dl_distance', 'Measure the distance of atoms');
7406
7422
  ic.pk = 1;
7407
7423
  ic.opts['pk'] = 'atom';
@@ -7411,7 +7427,7 @@ class ClickMenu {
7411
7427
  });
7412
7428
 
7413
7429
 
7414
- me.myEventCls.onIds("#" + me.pre + "mn6_distTwoSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7430
+ me.myEventCls.onIds("#" + me.pre + "mn6_distTwoSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7415
7431
  me.htmlCls.dialogCls.openDlg('dl_disttwosets', 'Measure the distance between two sets');
7416
7432
 
7417
7433
  thisClass.setSetsMenus('atomsCustomDist');
@@ -7419,7 +7435,7 @@ class ClickMenu {
7419
7435
  ic.bMeasureDistance = true;
7420
7436
  });
7421
7437
 
7422
- me.myEventCls.onIds("#" + me.pre + "mn6_distManySets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7438
+ me.myEventCls.onIds("#" + me.pre + "mn6_distManySets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7423
7439
  me.htmlCls.dialogCls.openDlg('dl_distmanysets', 'Measure the pairwise distance among many sets');
7424
7440
 
7425
7441
  thisClass.setSetsMenus('atomsCustomDistTable');
@@ -7427,7 +7443,7 @@ class ClickMenu {
7427
7443
  ic.bMeasureDistance = true;
7428
7444
  });
7429
7445
 
7430
- me.myEventCls.onIds("#" + me.pre + "mn6_distanceNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7446
+ me.myEventCls.onIds("#" + me.pre + "mn6_distanceNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7431
7447
  ic.pickpair = false;
7432
7448
  let select = "set lines off";
7433
7449
  thisClass.setLogCmd(select, true);
@@ -7438,7 +7454,7 @@ class ClickMenu {
7438
7454
  ic.drawCls.draw();
7439
7455
  });
7440
7456
 
7441
- me.myEventCls.onIds("#" + me.pre + "mn5_cartoonshape", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7457
+ me.myEventCls.onIds("#" + me.pre + "mn5_cartoonshape", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7442
7458
  me.htmlCls.dialogCls.openDlg('dl_cartoonshape', 'Draw cartoon for a set');
7443
7459
 
7444
7460
  let bOneset = true;
@@ -7447,7 +7463,7 @@ class ClickMenu {
7447
7463
  ic.bCartoonshape = true;
7448
7464
  });
7449
7465
 
7450
- me.myEventCls.onIds("#" + me.pre + "mn5_linebtwsets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7466
+ me.myEventCls.onIds("#" + me.pre + "mn5_linebtwsets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7451
7467
  me.htmlCls.dialogCls.openDlg('dl_linebtwsets', 'Draw a line between two sets');
7452
7468
 
7453
7469
  thisClass.setSetsMenus('linebtwsets');
@@ -7456,21 +7472,21 @@ class ClickMenu {
7456
7472
  });
7457
7473
 
7458
7474
 
7459
- me.myEventCls.onIds(["#" + me.pre + "mn2_selectedcenter", "#" + me.pre + "zoomin_selection", "#" + me.pre + "tool_selectedcenter"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7475
+ me.myEventCls.onIds(["#" + me.pre + "mn2_selectedcenter", "#" + me.pre + "zoomin_selection", "#" + me.pre + "tool_selectedcenter"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7460
7476
  //thisClass.setLogCmd('zoom selection', true);
7461
7477
  ic.transformCls.zoominSelection();
7462
7478
  ic.drawCls.draw();
7463
7479
  thisClass.setLogCmd('zoom selection', true);
7464
7480
  });
7465
7481
 
7466
- me.myEventCls.onIds("#" + me.pre + "mn6_center", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7482
+ me.myEventCls.onIds("#" + me.pre + "mn6_center", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7467
7483
  //thisClass.setLogCmd('center selection', true);
7468
7484
  ic.applyCenterCls.centerSelection();
7469
7485
  ic.drawCls.draw();
7470
7486
  thisClass.setLogCmd('center selection', true);
7471
7487
  });
7472
7488
 
7473
- me.myEventCls.onIds(["#" + me.pre + "mn6_resetOrientation", "#" + me.pre + "resetOrientation", "#" + me.pre + "tool_resetOrientation"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7489
+ me.myEventCls.onIds(["#" + me.pre + "mn6_resetOrientation", "#" + me.pre + "resetOrientation", "#" + me.pre + "tool_resetOrientation"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7474
7490
  //thisClass.setLogCmd('reset orientation', true);
7475
7491
  ic.transformCls.resetOrientation();
7476
7492
  //ic.setColorCls.applyOriginalColor();
@@ -7478,17 +7494,17 @@ class ClickMenu {
7478
7494
  thisClass.setLogCmd('reset orientation', true);
7479
7495
  });
7480
7496
 
7481
- me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindingshow", "#" + me.pre + "chemicalbindingshow"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7497
+ me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindingshow", "#" + me.pre + "chemicalbindingshow"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7482
7498
  ic.setOptionCls.setOption('chemicalbinding', 'show');
7483
7499
  thisClass.setLogCmd('set chemicalbinding show', true);
7484
7500
  });
7485
7501
 
7486
- me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindinghide", "#" + me.pre + "chemicalbindinghide"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7502
+ me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindinghide", "#" + me.pre + "chemicalbindinghide"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7487
7503
  ic.setOptionCls.setOption('chemicalbinding', 'hide');
7488
7504
  thisClass.setLogCmd('set chemicalbinding hide', true);
7489
7505
  });
7490
7506
 
7491
- me.myEventCls.onIds("#" + me.pre + "mn6_sidebyside", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7507
+ me.myEventCls.onIds("#" + me.pre + "mn6_sidebyside", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7492
7508
  if(ic.bInputfile) {
7493
7509
  var aaa = 1; //alert("Side-by-Side does NOT work when the input is from a local file.");
7494
7510
  return;
@@ -7507,7 +7523,7 @@ class ClickMenu {
7507
7523
  });
7508
7524
 
7509
7525
 
7510
- $(document).on("click", "." + me.pre + "mn6_rotate", function(e) { let ic = me.icn3d; //e.preventDefault();
7526
+ $(document).on("click", "." + me.pre + "mn6_rotate", function(e) { let ic = me.icn3d; e.preventDefault();
7511
7527
  let value = $(this).attr('v').toLowerCase();
7512
7528
  let direction = value.split(' ')[1];
7513
7529
 
@@ -7519,7 +7535,7 @@ class ClickMenu {
7519
7535
  ic.resizeCanvasCls.rotStruc(direction);
7520
7536
  });
7521
7537
 
7522
- $(document).on("click", "." + me.pre + "mn6_rotate90", function(e) { let ic = me.icn3d; //e.preventDefault();
7538
+ $(document).on("click", "." + me.pre + "mn6_rotate90", function(e) { let ic = me.icn3d; e.preventDefault();
7523
7539
  let value = $(this).attr('v').toLowerCase();
7524
7540
  let direction = value.split('-')[0];
7525
7541
 
@@ -7538,21 +7554,21 @@ class ClickMenu {
7538
7554
  ic.transformCls.setRotation(axis, angle);
7539
7555
  });
7540
7556
 
7541
- me.myEventCls.onIds("#" + me.pre + "mn6_cameraPers", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7557
+ me.myEventCls.onIds("#" + me.pre + "mn6_cameraPers", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7542
7558
  ic.setOptionCls.setOption('camera', 'perspective');
7543
7559
  thisClass.setLogCmd('set camera perspective', true);
7544
7560
  });
7545
7561
 
7546
- me.myEventCls.onIds("#" + me.pre + "mn6_cameraOrth", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7562
+ me.myEventCls.onIds("#" + me.pre + "mn6_cameraOrth", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7547
7563
  ic.setOptionCls.setOption('camera', 'orthographic');
7548
7564
  thisClass.setLogCmd('set camera orthographic', true);
7549
7565
  });
7550
7566
 
7551
- me.myEventCls.onIds("#" + me.pre + "mn6_bkgdBlack", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7567
+ me.myEventCls.onIds("#" + me.pre + "mn6_bkgdBlack", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7552
7568
  ic.setStyleCls.setBackground('black');
7553
7569
  });
7554
7570
 
7555
- me.myEventCls.onIds("#" + me.pre + "tool_bkgd", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7571
+ me.myEventCls.onIds("#" + me.pre + "tool_bkgd", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7556
7572
  if(ic.opts['background'] == 'black') {
7557
7573
  ic.setStyleCls.setBackground('white');
7558
7574
  }
@@ -7561,19 +7577,19 @@ class ClickMenu {
7561
7577
  }
7562
7578
  });
7563
7579
 
7564
- me.myEventCls.onIds("#" + me.pre + "mn6_bkgdGrey", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7580
+ me.myEventCls.onIds("#" + me.pre + "mn6_bkgdGrey", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7565
7581
  ic.setStyleCls.setBackground('grey');
7566
7582
  });
7567
7583
 
7568
- me.myEventCls.onIds(["#" + me.pre + "mn6_bkgdWhite", "#" + me.pre + "tool_bkgdWhite"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7584
+ me.myEventCls.onIds(["#" + me.pre + "mn6_bkgdWhite", "#" + me.pre + "tool_bkgdWhite"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7569
7585
  ic.setStyleCls.setBackground('white');
7570
7586
  });
7571
7587
 
7572
- me.myEventCls.onIds("#" + me.pre + "mn6_bkgdTransparent", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7588
+ me.myEventCls.onIds("#" + me.pre + "mn6_bkgdTransparent", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7573
7589
  ic.setStyleCls.setBackground('transparent');
7574
7590
  });
7575
7591
 
7576
- me.myEventCls.onIds("#" + me.pre + "mn6_showfogYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7592
+ me.myEventCls.onIds("#" + me.pre + "mn6_showfogYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7577
7593
  //ic.setOptionCls.setOption('fog', 'yes');
7578
7594
  ic.opts['fog'] = 'yes';
7579
7595
  ic.fogCls.setFog(true);
@@ -7581,7 +7597,7 @@ class ClickMenu {
7581
7597
  thisClass.setLogCmd('set fog on', true);
7582
7598
  });
7583
7599
 
7584
- me.myEventCls.onIds("#" + me.pre + "mn6_showfogNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7600
+ me.myEventCls.onIds("#" + me.pre + "mn6_showfogNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7585
7601
  //ic.setOptionCls.setOption('fog', 'no');
7586
7602
  ic.opts['fog'] = 'no';
7587
7603
  ic.fogCls.setFog(true);
@@ -7589,22 +7605,22 @@ class ClickMenu {
7589
7605
  thisClass.setLogCmd('set fog off', true);
7590
7606
  });
7591
7607
 
7592
- me.myEventCls.onIds("#" + me.pre + "mn6_showslabYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7608
+ me.myEventCls.onIds("#" + me.pre + "mn6_showslabYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7593
7609
  ic.setOptionCls.setOption('slab', 'yes');
7594
7610
  thisClass.setLogCmd('set slab on', true);
7595
7611
  });
7596
7612
 
7597
- me.myEventCls.onIds("#" + me.pre + "mn6_showslabNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7613
+ me.myEventCls.onIds("#" + me.pre + "mn6_showslabNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7598
7614
  ic.setOptionCls.setOption('slab', 'no');
7599
7615
  thisClass.setLogCmd('set slab off', true);
7600
7616
  });
7601
7617
 
7602
- me.myEventCls.onIds("#" + me.pre + "mn6_showaxisYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7618
+ me.myEventCls.onIds("#" + me.pre + "mn6_showaxisYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7603
7619
  ic.setOptionCls.setOption('axis', 'yes');
7604
7620
  thisClass.setLogCmd('set axis on', true);
7605
7621
  });
7606
7622
 
7607
- me.myEventCls.onIds("#" + me.pre + "mn6_showaxisSel", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7623
+ me.myEventCls.onIds("#" + me.pre + "mn6_showaxisSel", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7608
7624
  ic.pc1 = true;
7609
7625
 
7610
7626
  ic.axesCls.setPc1Axes();
@@ -7612,7 +7628,7 @@ class ClickMenu {
7612
7628
  });
7613
7629
 
7614
7630
 
7615
- me.myEventCls.onIds("#" + me.pre + "mn6_showaxisNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7631
+ me.myEventCls.onIds("#" + me.pre + "mn6_showaxisNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7616
7632
  ic.pc1 = false;
7617
7633
  ic.axes = [];
7618
7634
 
@@ -7621,37 +7637,37 @@ class ClickMenu {
7621
7637
  thisClass.setLogCmd('set axis off', true);
7622
7638
  });
7623
7639
 
7624
- me.myEventCls.onIds("#" + me.pre + "mn6_symmetry", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7640
+ me.myEventCls.onIds("#" + me.pre + "mn6_symmetry", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7625
7641
  ic.bAxisOnly = false;
7626
7642
  await ic.symdCls.retrieveSymmetry(Object.keys(ic.structures)[0]);
7627
7643
  //me.htmlCls.dialogCls.openDlg('dl_symmetry', 'Symmetry');
7628
7644
  });
7629
7645
 
7630
- me.myEventCls.onIds("#" + me.pre + "mn6_symd", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7646
+ me.myEventCls.onIds("#" + me.pre + "mn6_symd", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7631
7647
  ic.bAxisOnly = false;
7632
7648
  await ic.symdCls.retrieveSymd();
7633
7649
  ic.bSymd = true;
7634
7650
 
7635
7651
  thisClass.setLogCmd('symd symmetry', true);
7636
7652
  });
7637
- me.myEventCls.onIds("#" + me.pre + "mn6_clear_sym", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7653
+ me.myEventCls.onIds("#" + me.pre + "mn6_clear_sym", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7638
7654
  ic.symdArray = [];
7639
7655
  ic.drawCls.draw();
7640
7656
  thisClass.setLogCmd('clear symd symmetry', true);
7641
7657
  });
7642
- me.myEventCls.onIds("#" + me.pre + "mn6_axes_only", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7658
+ me.myEventCls.onIds("#" + me.pre + "mn6_axes_only", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7643
7659
  ic.bAxisOnly = true;
7644
7660
  ic.drawCls.draw();
7645
7661
  thisClass.setLogCmd('show axis', true);
7646
7662
  });
7647
7663
 
7648
7664
 
7649
- me.myEventCls.onIds("#" + me.pre + "mn6_area", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7665
+ me.myEventCls.onIds("#" + me.pre + "mn6_area", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7650
7666
  ic.analysisCls.calculateArea();
7651
7667
  thisClass.setLogCmd('area', true);
7652
7668
  });
7653
7669
 
7654
- me.myEventCls.onIds("#" + me.pre + "applysymmetry", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7670
+ me.myEventCls.onIds("#" + me.pre + "applysymmetry", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7655
7671
  ic.bAxisOnly = false;
7656
7672
 
7657
7673
  let title = $("#" + me.pre + "selectSymmetry" ).val();
@@ -7661,14 +7677,14 @@ class ClickMenu {
7661
7677
  ic.drawCls.draw();
7662
7678
  thisClass.setLogCmd('symmetry ' + title, true);
7663
7679
  });
7664
- me.myEventCls.onIds("#" + me.pre + "clearsymmetry", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7680
+ me.myEventCls.onIds("#" + me.pre + "clearsymmetry", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7665
7681
  let title = 'none';
7666
7682
  ic.symmetrytitle = undefined;
7667
7683
  ic.drawCls.draw();
7668
7684
  thisClass.setLogCmd('symmetry ' + title, true);
7669
7685
  });
7670
7686
 
7671
- me.myEventCls.onIds(["#" + me.pre + "mn6_hbondsYes", "#" + me.pre + "hbondsYes"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7687
+ me.myEventCls.onIds(["#" + me.pre + "mn6_hbondsYes", "#" + me.pre + "hbondsYes"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7672
7688
  thisClass.SetChainsAdvancedMenu();
7673
7689
 
7674
7690
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
@@ -7685,17 +7701,17 @@ class ClickMenu {
7685
7701
  $("#" + me.pre + "atomsCustomHbond2").resizable();
7686
7702
  });
7687
7703
 
7688
- me.myEventCls.onIds(["#" + me.pre + "mn6_contactmap"], "click", function(e) { me.icn3d; //e.preventDefault();
7704
+ me.myEventCls.onIds(["#" + me.pre + "mn6_contactmap"], "click", function(e) { me.icn3d; e.preventDefault();
7689
7705
  me.htmlCls.dialogCls.openDlg('dl_contact', 'Set contact map');
7690
7706
  });
7691
7707
 
7692
7708
 
7693
- me.myEventCls.onIds("#" + me.pre + "mn6_hbondsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7709
+ me.myEventCls.onIds("#" + me.pre + "mn6_hbondsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7694
7710
  ic.showInterCls.hideHbondsContacts();
7695
7711
  ic.drawCls.draw();
7696
7712
  });
7697
7713
 
7698
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7714
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7699
7715
  let select = "stabilizer";
7700
7716
  ic.threeDPrintCls.addStabilizer();
7701
7717
  ic.threeDPrintCls.prepareFor3Dprint();
@@ -7703,14 +7719,14 @@ class ClickMenu {
7703
7719
  thisClass.setLogCmd(select, true);
7704
7720
  });
7705
7721
 
7706
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7722
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7707
7723
  let select = "set stabilizer off";
7708
7724
  thisClass.setLogCmd(select, true);
7709
7725
  ic.threeDPrintCls.hideStabilizer();
7710
7726
  ic.drawCls.draw();
7711
7727
  });
7712
7728
 
7713
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerOne", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7729
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerOne", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7714
7730
  me.htmlCls.dialogCls.openDlg('dl_stabilizer', 'Add One Stabilizer');
7715
7731
  ic.pk = 1;
7716
7732
  ic.opts['pk'] = 'atom';
@@ -7718,7 +7734,7 @@ class ClickMenu {
7718
7734
  ic.pAtomNum = 0;
7719
7735
  });
7720
7736
 
7721
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerRmOne", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7737
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerRmOne", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7722
7738
  me.htmlCls.dialogCls.openDlg('dl_stabilizer_rm', 'Remove One Stabilizer');
7723
7739
  ic.pk = 1;
7724
7740
  ic.opts['pk'] = 'atom';
@@ -7726,27 +7742,27 @@ class ClickMenu {
7726
7742
  ic.pAtomNum = 0;
7727
7743
  });
7728
7744
 
7729
- me.myEventCls.onIds("#" + me.pre + "mn1_thicknessSet", "click", function(e) { me.icn3d; //e.preventDefault();
7745
+ me.myEventCls.onIds("#" + me.pre + "mn1_thicknessSet", "click", function(e) { me.icn3d; e.preventDefault();
7730
7746
  me.htmlCls.dialogCls.openDlg('dl_thickness', 'Set Thickness for 3D Printing');
7731
7747
  });
7732
7748
 
7733
- me.myEventCls.onIds("#" + me.pre + "mn3_setThickness", "click", function(e) { me.icn3d; //e.preventDefault();
7749
+ me.myEventCls.onIds("#" + me.pre + "mn3_setThickness", "click", function(e) { me.icn3d; e.preventDefault();
7734
7750
  me.htmlCls.dialogCls.openDlg('dl_thickness2', 'Style Preferences');
7735
7751
  });
7736
7752
 
7737
7753
 
7738
- me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7754
+ me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7739
7755
  let select = "disulfide bonds";
7740
7756
  thisClass.setLogCmd(select, true);
7741
7757
  ic.showInterCls.showSsbonds();
7742
7758
  });
7743
7759
 
7744
- me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsExport", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7760
+ me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsExport", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7745
7761
  ic.viewInterPairsCls.exportSsbondPairs();
7746
7762
  thisClass.setLogCmd("export disulfide bond pairs", false);
7747
7763
  });
7748
7764
 
7749
- me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7765
+ me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7750
7766
  ic.opts["ssbonds"] = "no";
7751
7767
  let select = "set disulfide bonds off";
7752
7768
  thisClass.setLogCmd(select, true);
@@ -7754,7 +7770,7 @@ class ClickMenu {
7754
7770
  ic.setOptionCls.setStyle('sidec', 'nothing');
7755
7771
  });
7756
7772
 
7757
- me.myEventCls.onIds("#" + me.pre + "mn6_clbondsYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7773
+ me.myEventCls.onIds("#" + me.pre + "mn6_clbondsYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7758
7774
  let select = "cross linkage";
7759
7775
  thisClass.setLogCmd(select, true);
7760
7776
  //ic.bShowCrossResidueBond = true;
@@ -7762,12 +7778,12 @@ class ClickMenu {
7762
7778
  ic.showInterCls.showClbonds();
7763
7779
  });
7764
7780
 
7765
- me.myEventCls.onIds("#" + me.pre + "mn6_clbondsExport", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7781
+ me.myEventCls.onIds("#" + me.pre + "mn6_clbondsExport", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7766
7782
  ic.viewInterPairsCls.exportClbondPairs();
7767
7783
  thisClass.setLogCmd("export cross linkage pairs", false);
7768
7784
  });
7769
7785
 
7770
- me.myEventCls.onIds("#" + me.pre + "mn6_clbondsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7786
+ me.myEventCls.onIds("#" + me.pre + "mn6_clbondsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7771
7787
  ic.opts["clbonds"] = "no";
7772
7788
  let select = "set cross linkage off";
7773
7789
  thisClass.setLogCmd(select, true);
@@ -7814,6 +7830,11 @@ class ClickMenu {
7814
7830
  }
7815
7831
  });
7816
7832
  });
7833
+
7834
+ me.myEventCls.onIds("#" + me.pre + "jn_copy", "click", function(e) { me.icn3d; e.preventDefault();
7835
+ let text = $("#" + me.pre + "jn_commands").val();
7836
+ navigator.clipboard.writeText(text);
7837
+ });
7817
7838
  }
7818
7839
 
7819
7840
  //Show the input command in log. If "bSetCommand" is true, the command will be saved in the state file as well.
@@ -9368,8 +9389,8 @@ class SetMenu {
9368
9389
  //}
9369
9390
 
9370
9391
  //!!!
9371
- //html += this.getRadio('mn4_clr', 'mn4_clrIgstrand', 'Ig Strand', undefined, undefined, 2);
9372
- //html += this.getRadio('mn4_clr', 'mn4_clrIgproto', 'Ig Protodomain', undefined, undefined, 2);
9392
+ //!!!html += this.getRadio('mn4_clr', 'mn4_clrIgstrand', 'Ig Strand', undefined, undefined, 2);
9393
+ //!!!html += this.getRadio('mn4_clr', 'mn4_clrIgproto', 'Ig Protodomain', undefined, undefined, 2);
9373
9394
  }
9374
9395
  else {
9375
9396
  //if(!me.cfg.hidelicense) html += this.getRadio('mn4_clr', 'mn1_delphi2', 'DelPhi<br><span style="padding-left:1.5em;">Potential ' + me.htmlCls.licenseStr + '</span>');
@@ -9450,14 +9471,15 @@ class SetMenu {
9450
9471
 
9451
9472
  html += this.getLink('mn6_contactmap', 'Contact Map', undefined, 1);
9452
9473
 
9453
- if(!me.cfg.notebook) {
9474
+ //if(!me.cfg.notebook) {
9454
9475
  html += this.getLink('mn1_mutation', 'Mutation ' + me.htmlCls.wifiStr, 1, 1);
9455
- }
9476
+ //}
9456
9477
 
9457
9478
  //html += this.getMenuSep();
9458
9479
  }
9459
9480
 
9460
- if(!me.cfg.notebook && !me.cfg.hidelicense) {
9481
+ //if(!me.cfg.notebook && !me.cfg.hidelicense) {
9482
+ if(!me.cfg.hidelicense) {
9461
9483
  html += this.getMenuText('mn1_delphiwrap', 'DelPhi Potential', undefined, 1, 1);
9462
9484
 
9463
9485
  html += "<ul>";
@@ -10271,6 +10293,8 @@ class Dialog {
10271
10293
 
10272
10294
  if(id === me.pre + 'dl_selectannotations' || id === me.pre + 'dl_graph' || id === me.pre + 'dl_linegraph' || id === me.pre + 'dl_scatterplot' || id === me.pre + 'dl_contactmap' || id === me.pre + 'dl_alignerrormap' || id === me.pre + 'dl_interactionsorted' || id === me.pre + 'dl_alignment') {
10273
10295
  $( "#" + id ).show();
10296
+ $( "#" + id + "_nb").show();
10297
+ $( "#" + id + "_title").html(title);
10274
10298
 
10275
10299
  height =(me.htmlCls.HEIGHT) * 0.5;
10276
10300
 
@@ -10315,7 +10339,11 @@ class Dialog {
10315
10339
  });
10316
10340
  }
10317
10341
  else {
10318
- if(ic.bRender) $( "#" + id ).show();
10342
+ if(ic.bRender) {
10343
+ $( "#" + id ).show();
10344
+ $( "#" + id + "_nb").show();
10345
+ $( "#" + id + "_title").html(title);
10346
+ }
10319
10347
 
10320
10348
  height = 'auto';
10321
10349
  width = 'auto';
@@ -10365,6 +10393,18 @@ class SetDialog {
10365
10393
  return html;
10366
10394
  }
10367
10395
 
10396
+ addNotebookTitle(id, title, bAddExtraDiv) { let me = this.icn3dui; me.icn3d;
10397
+ //return '<div id="' + me.pre + id + '_nb" style="display:none; background-color:#1c94c4; width:100%"><span style="color:white; font-weight:bold">' + title + '</span>&nbsp;&nbsp;&nbsp;<span onclick="$(\'#' + me.pre + id + '\').hide(); return false;" class="icn3d-nbclose" title="Close">x</span></div>';
10398
+
10399
+ let html = '<div id="' + me.pre + id + '_nb" style="display:none; background-color:#5C9CCC; width:100%"><span id="' + me.pre + id + '_title" style="color:white; font-weight:bold">' + title + '</span>&nbsp;&nbsp;&nbsp;<div onclick="$(\'#' + me.pre + id + '\').hide(); return false;" class="icn3d-nbclose ui-icon ui-icon-close" title="Close"></div></div>';
10400
+
10401
+ if(bAddExtraDiv) {
10402
+ html += '<div id="' + me.pre + id + '_html"></div>';
10403
+ }
10404
+
10405
+ return html;
10406
+ }
10407
+
10368
10408
  //Set the html for all popup dialogs.
10369
10409
  setDialogs() { let me = this.icn3dui, ic = me.icn3d;
10370
10410
  if(me.bNode) return '';
@@ -10379,12 +10419,15 @@ class SetDialog {
10379
10419
 
10380
10420
  let divClass =(me.cfg.notebook) ? '' : 'icn3d-hidden';
10381
10421
  let dialogClass =(me.cfg.notebook) ? 'icn3d-hidden' : '';
10382
- html += me.htmlCls.divStr + "alldialogs' class='" + divClass + " icn3d-dialog'>";
10422
+ //html += me.htmlCls.divStr + "alldialogs' class='" + divClass + " icn3d-dialog' style='margin-top:" + me.htmlCls.CMD_HEIGHT + "px'>";
10423
+ html += me.htmlCls.divStr + "alldialogs' class='" + divClass + " icn3d-dialog' style='margin-top:12px'>";
10383
10424
 
10384
10425
  html += me.htmlCls.divStr + "dl_2ddgm' class='" + dialogClass + " icn3d-dl_2ddgm' style='background-color:white'>";
10426
+ html += this.addNotebookTitle('dl_2ddgm', '2D Diagram', true);
10385
10427
  html += "</div>";
10386
10428
 
10387
10429
  html += me.htmlCls.divStr + "dl_2dctn' class='" + dialogClass + " icn3d-dl_2dctn' style='background-color:white'>";
10430
+ html += this.addNotebookTitle('dl_2dctn', '2D Cartoon');
10388
10431
 
10389
10432
  me.svgid_ct = me.pre + "icn3d_cartoon";
10390
10433
 
@@ -10412,14 +10455,17 @@ class SetDialog {
10412
10455
 
10413
10456
  // if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined || ic.bRealign || ic.bSymd) {
10414
10457
  html += me.htmlCls.divStr + "dl_alignment' class='" + dialogClass + "' style='background-color:white;'>";
10458
+ html += this.addNotebookTitle('dl_alignment', 'Dynamically Calculated Symmetry using SymD');
10415
10459
  html += me.htmlCls.divStr + "symd_info'></div>";
10416
10460
  html += me.htmlCls.divStr + "alignseqguide_wrapper'><br>" + me.htmlCls.setHtmlCls.setAlignSequenceGuide() + "</div>";
10417
10461
  html += me.htmlCls.divStr + "dl_sequence2' class='icn3d-dl_sequence'>";
10462
+ html += this.addNotebookTitle('dl_sequence2', 'Select Residues in Aligned Sequences');
10418
10463
  html += "</div>";
10419
10464
  html += "</div>";
10420
10465
  // }
10421
10466
 
10422
10467
  html += me.htmlCls.divStr + "dl_definedsets' class='" + dialogClass + "'>";
10468
+ html += this.addNotebookTitle('dl_definedsets', 'Defined Sets');
10423
10469
  html += me.htmlCls.divStr + "dl_setsmenu'>";
10424
10470
  html += "<b>Defined Sets:</b> <br/>";
10425
10471
  html += "<select id='" + me.pre + "atomsCustom' multiple size='6' style='min-width:130px;'>";
@@ -10443,12 +10489,14 @@ class SetDialog {
10443
10489
  html += me.htmlCls.setHtmlCls.setAdvanced(2);
10444
10490
 
10445
10491
  html += me.htmlCls.divStr + "dl_vastplus' class='" + dialogClass + "' style='max-width:500px'>";
10492
+ html += this.addNotebookTitle('dl_vastplus', 'Please input PDB ID for VAST+');
10446
10493
  html += "Note: <b>VAST+</b> finds other macromolecular structures that have a similar biological unit. To do this, VAST+ takes into consideration the complete set of 3D domains that VAST identified within a query structure, throughout all of its component protein molecules, and finds other macromolecular structures that have a similar set of proteins/3D domains.<br><br>";
10447
10494
  html += "PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "vastpluspdbid' value='6VXX' size=8><br>";
10448
10495
  html += me.htmlCls.buttonStr + "reload_vastplus'>VAST+</button>";
10449
10496
  html += "</div>";
10450
10497
 
10451
10498
  html += me.htmlCls.divStr + "dl_vast' class='" + dialogClass + "' style='max-width:500px'>";
10499
+ html += this.addNotebookTitle('dl_vast', 'Pleaes input chain or PDB file for VAST');
10452
10500
  html += 'Note: <b>VAST</b> identifies 3D domains (substructures) within each protein structure in the Molecular Modeling Database (MMDB), and then finds other protein structures that have one or more similar 3D domains, using purely geometric criteria. You have two ways to do a VAST search.<br><br>';
10453
10501
 
10454
10502
  html += '<b>Optione 1</b>, search with your selection (all residues are selected by default) in the loaded structures:<br>';
@@ -10477,6 +10525,7 @@ class SetDialog {
10477
10525
  html += "</div>";
10478
10526
 
10479
10527
  html += me.htmlCls.divStr + "dl_foldseek' class='" + dialogClass + "' style='max-width:500px'>";
10528
+ html += this.addNotebookTitle('dl_foldseek', 'Submit your selection to Foldseek');
10480
10529
  html += '1. <input type="submit" id="' + me.pre + 'fssubmit" name="fssubmit" value="Submit"></input> your selection (all residues are selected by default) in the loaded structures to <a href="https://search.foldseek.com/search" target="_blank">Foldseek</a> web server.<br><br>';
10481
10530
  html += '2 (Optional). Once you see the structure neighbors, you can view the alignment in iCn3D by inputing a list of PDB chain IDs or AlphaFold UniProt IDs below. <br><br>The PDB chain IDs are the same as the record names such as "1HHO_A". The UniProt ID is the text between "AF-" and "-F1". For example, the UniProt ID for the record name "AF-P69905-F1-model_v4" is "P69905".<br><br>';
10482
10531
 
@@ -10485,16 +10534,19 @@ class SetDialog {
10485
10534
  html += "</div>";
10486
10535
 
10487
10536
  html += me.htmlCls.divStr + "dl_mmtfid' class='" + dialogClass + "'>";
10537
+ html += this.addNotebookTitle('dl_mmtfid', 'Please input an MMTF ID');
10488
10538
  html += "MMTF ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmtfid' value='1TUP' size=8> ";
10489
10539
  html += me.htmlCls.buttonStr + "reload_mmtf'>Load</button>";
10490
10540
  html += "</div>";
10491
10541
 
10492
10542
  html += me.htmlCls.divStr + "dl_pdbid' class='" + dialogClass + "'>";
10543
+ html += this.addNotebookTitle('dl_pdbid', 'Please input a PDB ID');
10493
10544
  html += "PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "pdbid' value='1TUP' size=8> ";
10494
10545
  html += me.htmlCls.buttonStr + "reload_pdb'>Load</button>";
10495
10546
  html += "</div>";
10496
10547
 
10497
10548
  html += me.htmlCls.divStr + "dl_afid' class='" + dialogClass + "'>";
10549
+ html += this.addNotebookTitle('dl_afid', 'Please input an AlphaFold UniProt ID');
10498
10550
  html += "Note: AlphaFold produces a per-residue confidence score (pLDDT) between 0 and 100:<br>";
10499
10551
  html += me.htmlCls.clickMenuCls.setAlphaFoldLegend() + "<br>";
10500
10552
 
@@ -10507,27 +10559,32 @@ class SetDialog {
10507
10559
  html += "</div>";
10508
10560
 
10509
10561
  html += me.htmlCls.divStr + "dl_refseqid' class='" + dialogClass + "'>";
10562
+ html += this.addNotebookTitle('dl_refseqid', 'Please input an NCBI protein accession');
10510
10563
  html += "NCBI Protein Accession: " + me.htmlCls.inputTextStr + "id='" + me.pre + "refseqid' value='NP_001743.1' size=8> ";
10511
10564
  html += me.htmlCls.buttonStr + "reload_refseq'>Load</button>";
10512
10565
  html += "</div>";
10513
10566
 
10514
10567
  html += me.htmlCls.divStr + "dl_opmid' class='" + dialogClass + "'>";
10568
+ html += this.addNotebookTitle('dl_opmid', 'Please input an OPM PDB ID');
10515
10569
  html += "<a href='https://opm.phar.umich.edu' target='_blank'>Orientations of Proteins in Membranes(OPM)</a> PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "opmid' value='6JXR' size=8> ";
10516
10570
  html += me.htmlCls.buttonStr + "reload_opm'>Load</button>";
10517
10571
  html += "</div>";
10518
10572
 
10519
10573
  html += me.htmlCls.divStr + "dl_pdbfile' class='" + dialogClass + "'>";
10574
+ html += this.addNotebookTitle('dl_pdbfile', 'Please input a PDB file');
10520
10575
  html += "Note: Several PDB files could be concatenated into a single PDB file. Use the line \"ENDMDL\" to separate PDB files.<br><br>";
10521
10576
  html += "PDB File: " + me.htmlCls.inputFileStr + " id='" + me.pre + "pdbfile' size=8> ";
10522
10577
  html += me.htmlCls.buttonStr + "reload_pdbfile'>Load</button>";
10523
10578
  html += "</div>";
10524
10579
 
10525
10580
  html += me.htmlCls.divStr + "dl_pdbfile_app' class='" + dialogClass + "'>";
10581
+ html += this.addNotebookTitle('dl_pdbfile_app', 'Please append PDB files');
10526
10582
  html += "Multiple PDB Files: <input type='file' multiple id='" + me.pre + "pdbfile_app' size=8> ";
10527
10583
  html += me.htmlCls.buttonStr + "reload_pdbfile_app'>Append</button>";
10528
10584
  html += "</div>";
10529
10585
 
10530
10586
  html += me.htmlCls.divStr + "dl_rescolorfile' class='" + dialogClass + "'>";
10587
+ html += this.addNotebookTitle('dl_rescolorfile', 'Please input a residue color file');
10531
10588
  html += '<div style="width:450px;">The custom JSON file on residue colors has the following format for proteins("ALA" and "ARG") and nucleotides("G" and "A"):<br>';
10532
10589
  html += '{"ALA":"#C8C8C8", "ARG":"#145AFF", ..., "G":"#008000", "A":"#6080FF", ...}</div><br>';
10533
10590
  html += "Residue Color File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "rescolorfile' size=8> ";
@@ -10535,6 +10592,7 @@ class SetDialog {
10535
10592
  html += "</div>";
10536
10593
 
10537
10594
  html += me.htmlCls.divStr + "dl_customcolor' class='" + dialogClass + "'>";
10595
+ html += this.addNotebookTitle('dl_customcolor', 'Please input a custom color file');
10538
10596
  html += " <input type='hidden' id='" + me.pre + "customcolor_chainid' value=''>";
10539
10597
  html += '<div style="width:450px;">The custom file for the structure has two columns separated by space or tab: ';
10540
10598
  html += 'residue number, and score in the range of 0-100. If you click "Apply Custom Color" button, ';
@@ -10562,6 +10620,7 @@ class SetDialog {
10562
10620
  html += "</div>";
10563
10621
 
10564
10622
  html += me.htmlCls.divStr + "dl_customref' class='" + dialogClass + "'>";
10623
+ html += this.addNotebookTitle('dl_customref', 'Please input a reference number file');
10565
10624
  html += '<div style="width:550px;">You can define your own reference numbers in a custom file using Excel, and then export it as a CSV file. An example file is shown below with cells separated by commas.<br>';
10566
10625
  html += '<pre>refnum,11,12,,21,22,,10C,11C,20C<br>';
10567
10626
  html += '1TUP_A,100,101,,,132,,,,<br>';
@@ -10575,17 +10634,20 @@ class SetDialog {
10575
10634
  html += "</div>";
10576
10635
 
10577
10636
  html += me.htmlCls.divStr + "dl_align' class='" + dialogClass + "'>";
10637
+ html += this.addNotebookTitle('dl_align', 'Please select residues in aligned sequences');
10578
10638
  html += "Enter the PDB IDs or MMDB IDs of the structures: <br/><br/>ID1: " + me.htmlCls.inputTextStr + "id='" + me.pre + "alignid1' value='2DN3' size=8>" + me.htmlCls.space3 + me.htmlCls.space3 + "ID2: " + me.htmlCls.inputTextStr + "id='" + me.pre + "alignid2' value='4N7N' size=8><br/><br/>";
10579
10639
  html += "<b>VAST+ based on VAST</b>: " + me.htmlCls.buttonStr + "reload_align_ori'>All Matching Molecules Superposed</button>" + me.htmlCls.space3 + me.htmlCls.buttonStr + "reload_align_refined'>Invariant Substructure Superposed</button><br><br>";
10580
10640
  html += "<b>VAST+ based on TM-align</b>: " + me.htmlCls.buttonStr + "reload_align_tmalign'>All Matching Molecules Superposed</button><br><br>";
10581
10641
  html += "</div>";
10582
10642
 
10583
10643
  html += me.htmlCls.divStr + "dl_alignaf' class='" + dialogClass + "'>";
10644
+ html += this.addNotebookTitle('dl_alignaf', 'Align AlphaFold structures');
10584
10645
  html += "Enter two <a href='https://alphafold.ebi.ac.uk/' target='_blank'>AlphaFold Uniprot</a> IDs: <br/><br/>ID1: " + me.htmlCls.inputTextStr + "id='" + me.pre + "alignafid1' value='P41327' size=8>" + me.htmlCls.space3 + me.htmlCls.space3 + "ID2: " + me.htmlCls.inputTextStr + "id='" + me.pre + "alignafid2' value='P41331' size=8><br/><br/>";
10585
10646
  html += me.htmlCls.buttonStr + "reload_alignaf_tmalign'>Align with TM-align</button>" + me.htmlCls.buttonStr + "reload_alignaf' style='margin-left:30px'>Align with VAST</button>";
10586
10647
  html += "</div>";
10587
10648
 
10588
10649
  html += me.htmlCls.divStr + "dl_chainalign' class='" + dialogClass + "'>";
10650
+ html += this.addNotebookTitle('dl_chainalign', 'Align chains');
10589
10651
  html += "<div style='width:550px'>";
10590
10652
  html += "All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).<br/><br/>";
10591
10653
  html += "<b>Chain IDs</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "chainalignids' value='P69905,P01942,1HHO_A' size=50><br/><br/>";
@@ -10595,6 +10657,7 @@ class SetDialog {
10595
10657
  html += "</div></div>";
10596
10658
 
10597
10659
  html += me.htmlCls.divStr + "dl_chainalign2' class='" + dialogClass + "'>";
10660
+ html += this.addNotebookTitle('dl_chainalign2', 'Align chains');
10598
10661
  html += "<div style='width:550px'>";
10599
10662
  html += "All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).<br/><br/>";
10600
10663
  html += "<b>Chain IDs</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "chainalignids2' value='P69905,P01942,1HHO_A' size=50><br/><br/>";
@@ -10606,11 +10669,13 @@ class SetDialog {
10606
10669
  html += "</div></div>";
10607
10670
 
10608
10671
  html += me.htmlCls.divStr + "dl_chainalign3' class='" + dialogClass + "'>";
10672
+ html += this.addNotebookTitle('dl_chainalign3', 'Align chains');
10609
10673
  html += "<div style='width:550px'>";
10610
10674
  html += this.getHtmlAlignResidueByResidue('chainalignids3', 'predefinedres', 'reload_chainalign_asym3');
10611
10675
  html += "</div></div>";
10612
10676
 
10613
10677
  html += me.htmlCls.divStr + "dl_realignresbyres' class='" + dialogClass + "'>";
10678
+ html += this.addNotebookTitle('dl_realignresbyres', 'Realign residue by residue');
10614
10679
  html += "<div style='width:550px'>";
10615
10680
  html += "<b>Option 1</b>: " + me.htmlCls.buttonStr + "realignSelection'><b>Realign Current Selection Residue by Residue</b></button><br/><br/>";
10616
10681
  html += "<b>Option 2</b>: <br>";
@@ -10618,6 +10683,7 @@ class SetDialog {
10618
10683
  html += "</div></div>";
10619
10684
 
10620
10685
  html += me.htmlCls.divStr + "dl_mutation' class='" + dialogClass + "'>";
10686
+ html += this.addNotebookTitle('dl_mutation', 'Mutation analysis');
10621
10687
  html += "<div style='width:500px'>";
10622
10688
  html += 'Please specify the mutations with a comma separated mutation list. Each mutation can be specified as "[<b>uppercase</b> PDB ID or AlphaFold UniProt ID]_[Chain Name]_[Residue Number]_[One Letter Mutant Residue]". E.g., the mutation of N501Y in the E chain of PDB 6M0J can be specified as "6M0J_E_501_Y". For AlphaFold structures, the "Chain ID" is "A".<br/>If you load a custom structure without PDB or UniProt ID, you can open "Seq. & Annotations" window and find the chain ID such as "stru_A". The part before the underscore is the structure ID, which can be used to specify the mutation such as "stru_A_...". Remember to choose "Show Mutation in: Current Page".<br/><br/>';
10623
10689
  html += "<div style='display:inline-block; width:110px'>Mutations: </div>" + me.htmlCls.inputTextStr + "id='" + me.pre + "mutationids' value='6M0J_E_484_K,6M0J_E_501_Y,6M0J_E_417_N' size=50><br/><br/>";
@@ -10636,25 +10702,30 @@ class SetDialog {
10636
10702
  html += "<br/><br/></div></div>";
10637
10703
 
10638
10704
  html += me.htmlCls.divStr + "dl_mol2file' class='" + dialogClass + "'>";
10705
+ html += this.addNotebookTitle('dl_mol2file', 'Please input a Mol2 file');
10639
10706
  html += "Mol2 File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "mol2file' size=8> ";
10640
10707
  html += me.htmlCls.buttonStr + "reload_mol2file'>Load</button>";
10641
10708
  html += "</div>";
10642
10709
  html += me.htmlCls.divStr + "dl_sdffile' class='" + dialogClass + "'>";
10710
+ html += this.addNotebookTitle('dl_sdffile', 'Please input an SDF file');
10643
10711
  html += "SDF File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "sdffile' size=8> ";
10644
10712
  html += me.htmlCls.buttonStr + "reload_sdffile'>Load</button>";
10645
10713
  html += "</div>";
10646
10714
  html += me.htmlCls.divStr + "dl_xyzfile' class='" + dialogClass + "'>";
10715
+ html += this.addNotebookTitle('dl_xyzfile', 'Please input an XYZ file');
10647
10716
  html += "XYZ File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "xyzfile' size=8> ";
10648
10717
  html += me.htmlCls.buttonStr + "reload_xyzfile'>Load</button>";
10649
10718
  html += "</div>";
10650
10719
 
10651
10720
  html += me.htmlCls.divStr + "dl_afmapfile' class='" + dialogClass + "'>";
10721
+ html += this.addNotebookTitle('dl_afmapfile', 'Please input an AlphaFold PAE file');
10652
10722
  html += "AlphaFold PAE File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "afmapfile' size=8> <br><br>";
10653
10723
  html += me.htmlCls.buttonStr + "reload_afmapfile'>Load Half PAE Map</button>"
10654
10724
  + me.htmlCls.buttonStr + "reload_afmapfilefull' style='margin-left:30px'>Load Full PAE Map (slow)</button>";
10655
10725
  html += "</div>";
10656
10726
 
10657
10727
  html += me.htmlCls.divStr + "dl_urlfile' class='" + dialogClass + "'>";
10728
+ html += this.addNotebookTitle('dl_urlfile', 'Please input a file via URL');
10658
10729
  html += "File type: ";
10659
10730
  html += "<select id='" + me.pre + "filetype'>";
10660
10731
  html += me.htmlCls.optionStr + "'pdb' selected>PDB</option>";
@@ -10670,16 +10741,19 @@ class SetDialog {
10670
10741
  html += "</div>";
10671
10742
 
10672
10743
  html += me.htmlCls.divStr + "dl_mmciffile' class='" + dialogClass + "'>";
10744
+ html += this.addNotebookTitle('dl_mmciffile', 'Please input an mmCIF file');
10673
10745
  html += "mmCIF File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "mmciffile' value='1TUP' size=8> ";
10674
10746
  html += me.htmlCls.buttonStr + "reload_mmciffile'>Load</button>";
10675
10747
  html += "</div>";
10676
10748
 
10677
10749
  html += me.htmlCls.divStr + "dl_mmcifid' class='" + dialogClass + "'>";
10750
+ html += this.addNotebookTitle('dl_mmcifid', 'Please input an mmCIF ID');
10678
10751
  html += "mmCIF ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmcifid' value='1TUP' size=8> ";
10679
10752
  html += me.htmlCls.buttonStr + "reload_mmcif'>Load</button>";
10680
10753
  html += "</div>";
10681
10754
 
10682
10755
  html += me.htmlCls.divStr + "dl_mmdbid' class='" + dialogClass + "' style='max-width:500px'>";
10756
+ html += this.addNotebookTitle('dl_mmdbid', 'Please input an MMDB ID');
10683
10757
  html += "MMDB or PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmdbid' value='1TUP' size=8> <br><br>";
10684
10758
  html += me.htmlCls.buttonStr + "reload_mmdb_asym'>Load Asymmetric Unit (All Chains)</button>" + me.htmlCls.buttonStr + "reload_mmdb' style='margin-left:30px'>Load Biological Unit</button><br/><br/><br>";
10685
10759
  html += '<b>Note</b>: The "<b>biological unit</b>" is the <b>biochemically active form of a biomolecule</b>, <div style="width:20px; margin:6px 0 0 20px; display:inline-block;"><span id="'
@@ -10692,6 +10766,7 @@ class SetDialog {
10692
10766
  html += "</div>";
10693
10767
 
10694
10768
  html += me.htmlCls.divStr + "dl_mmdbafid' class='" + dialogClass + "' style='max-width:600px'>";
10769
+ html += this.addNotebookTitle('dl_mmdbafid', 'Please input a list of PDB/AlphaFold IDs');
10695
10770
  html += "List of PDB, MMDB, or AlphaFold UniProt structures: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmdbafid' placeholder='e.g., 1HHO,4N7N,P69905,P01942' size=30> <br><br>";
10696
10771
  html += "<div style='display:inline-block; width:20px'></div>" + me.htmlCls.buttonStr + "reload_mmdbaf' style='width:150px'>Load Biological Unit</button>" + me.htmlCls.buttonStr + "reload_mmdbaf_asym' style='margin-left:30px; width:250px'>Load Asymmetric Unit (All Chains)</button>" + "<br/><br/>";
10697
10772
  html += "<div style='display:inline-block; width:20px'>or</div>" + me.htmlCls.buttonStr + "reload_mmdbaf_append' style='width:150px'>Append Biological Unit</button>" + me.htmlCls.buttonStr + "reload_mmdbaf_asym_append' style='margin-left:30px; width:250px'>Append Asymmetric Unit (All Chains)</button>" + "<br/><br/>";
@@ -10706,6 +10781,7 @@ class SetDialog {
10706
10781
  html += "</div>";
10707
10782
 
10708
10783
  html += me.htmlCls.divStr + "dl_blast_rep_id' style='max-width:600px;' class='" + dialogClass + "'>";
10784
+ html += this.addNotebookTitle('dl_blast_rep_id', 'Align sequence to structure');
10709
10785
  html += "Enter a Sequence ID (or FASTA sequence) and the aligned protein accession, which can be found using the <a href='https://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastp&PAGE_TYPE=BlastSearch' target='_blank'>BLAST</a> search with the Sequence ID or FASTA sequence as input. If the protein accession is not a PDB chain, the corresponding AlphaFold UniProt structure is used.<br><br> ";
10710
10786
  html += "<b>Sequence ID</b>(NCBI protein accession of a sequence): " + me.htmlCls.inputTextStr + "id='" + me.pre + "query_id' value='NP_001108451.1' size=8><br> ";
10711
10787
  html += "or FASTA sequence: <br><textarea id='" + me.pre + "query_fasta' rows='5' style='width: 100%; height: " +(me.htmlCls.LOG_HEIGHT) + "px; padding: 0px; border: 0px;'></textarea><br><br>";
@@ -10717,32 +10793,38 @@ class SetDialog {
10717
10793
  html += "</div>";
10718
10794
 
10719
10795
  html += me.htmlCls.divStr + "dl_yournote' class='" + dialogClass + "'>";
10796
+ html += this.addNotebookTitle('dl_yournote', 'Your Note');
10720
10797
  html += "Your note will be saved in the HTML file when you click \"File > Save File > iCn3D PNG Image\".<br><br>";
10721
10798
  html += "<textarea id='" + me.pre + "yournote' rows='5' style='width: 100%; height: " +(me.htmlCls.LOG_HEIGHT) + "px; padding: 0px; border: 0px;' placeholder='Enter your note here'></textarea><br>";
10722
10799
  html += me.htmlCls.buttonStr + "applyyournote'>Save</button>";
10723
10800
  html += "</div>";
10724
10801
 
10725
10802
  html += me.htmlCls.divStr + "dl_gi' class='" + dialogClass + "'>";
10803
+ html += this.addNotebookTitle('dl_gi', 'Please input an NCBI gi');
10726
10804
  html += "Protein gi: " + me.htmlCls.inputTextStr + "id='" + me.pre + "gi' value='1310960' size=8> ";
10727
10805
  html += me.htmlCls.buttonStr + "reload_gi'>Load</button>";
10728
10806
  html += "</div>";
10729
10807
 
10730
10808
  html += me.htmlCls.divStr + "dl_cid' class='" + dialogClass + "'>";
10809
+ html += this.addNotebookTitle('dl_cid', 'Please input a PubChem CID');
10731
10810
  html += "PubChem CID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "cid' value='2244' size=8> ";
10732
10811
  html += me.htmlCls.buttonStr + "reload_cid'>Load</button>";
10733
10812
  html += "</div>";
10734
10813
 
10735
10814
  html += me.htmlCls.divStr + "dl_pngimage' class='" + dialogClass + "'>";
10815
+ html += this.addNotebookTitle('dl_pngimage', 'Please input an iCn3D PNG Image file');
10736
10816
  html += "iCn3D PNG image: " + me.htmlCls.inputFileStr + "id='" + me.pre + "pngimage'><br/>";
10737
10817
  html += me.htmlCls.buttonStr + "reload_pngimage' style='margin-top: 6px;'>Load</button>";
10738
10818
  html += "</div>";
10739
10819
 
10740
10820
  html += me.htmlCls.divStr + "dl_state' class='" + dialogClass + "'>";
10821
+ html += this.addNotebookTitle('dl_state', 'Please input a state file');
10741
10822
  html += "State file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "state'><br/>";
10742
10823
  html += me.htmlCls.buttonStr + "reload_state' style='margin-top: 6px;'>Load</button>";
10743
10824
  html += "</div>";
10744
10825
 
10745
10826
  html += me.htmlCls.divStr + "dl_fixedversion' style='max-width:500px' class='" + dialogClass + "'>";
10827
+ html += this.addNotebookTitle('dl_fixedversion', 'Use fixed version of iCn3D');
10746
10828
  html += "Since January 6, 2021, you can show the original view with the archived version of iCn3D by pasting your URL below and click \"Show Originial View\". Note the version in the parameter \"v\" was used to replace \"full.html\" with \"full_[v].html\" in the URL.<br><br>";
10747
10829
  html += "Share Link URL: " + me.htmlCls.inputTextStr + "id='" + me.pre + "sharelinkurl' size=60><br>";
10748
10830
  html += me.htmlCls.buttonStr + "reload_fixedversion'>Show Original View</button><br><br>";
@@ -10750,16 +10832,19 @@ class SetDialog {
10750
10832
 
10751
10833
 
10752
10834
  html += me.htmlCls.divStr + "dl_selection' class='" + dialogClass + "'>";
10835
+ html += this.addNotebookTitle('dl_selection', 'Load a selection file');
10753
10836
  html += "Selection file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "selectionfile'><br/>";
10754
10837
  html += me.htmlCls.buttonStr + "reload_selectionfile' style='margin-top: 6px;'>Load</button>";
10755
10838
  html += "</div>";
10756
10839
 
10757
10840
  html += me.htmlCls.divStr + "dl_menuloadpref' class='" + dialogClass + "'>";
10841
+ html += this.addNotebookTitle('dl_menuloadpref', 'Load a preference file');
10758
10842
  html += "Preference file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "menupreffile'><br/>";
10759
10843
  html += me.htmlCls.buttonStr + "reload_menupreffile' style='margin-top: 6px;'>Load</button>";
10760
10844
  html += "</div>";
10761
10845
 
10762
10846
  html += me.htmlCls.divStr + "dl_dsn6' class='" + dialogClass + "'>";
10847
+ html += this.addNotebookTitle('dl_dsn6', 'Load a DSN6 file');
10763
10848
  html += "<b>Note</b>: Always load a PDB file before loading DSN6 files. <br/><br/><br/>";
10764
10849
 
10765
10850
  html += "<span style='white-space:nowrap;font-weight:bold;'>2fofc contour at: <select id='" + me.pre + "dsn6sigma2fofc'>";
@@ -10782,6 +10867,7 @@ class SetDialog {
10782
10867
  html += "</div>";
10783
10868
 
10784
10869
  html += me.htmlCls.divStr + "dl_dsn6url' class='" + dialogClass + "'>";
10870
+ html += this.addNotebookTitle('dl_dsn6url', 'Load a selection file via a URL');
10785
10871
  html += "<b>Note</b>: Always load a PDB file before loading DSN6 files. <br/><br/><br/>";
10786
10872
 
10787
10873
  html += "<span style='white-space:nowrap;font-weight:bold;'>2fofc contour at: <select id='" + me.pre + "dsn6sigmaurl2fofc'>";
@@ -10803,6 +10889,7 @@ class SetDialog {
10803
10889
  html += "</div>";
10804
10890
 
10805
10891
  html += me.htmlCls.divStr + "dl_clr' class='" + dialogClass + "'>";
10892
+ html += this.addNotebookTitle('dl_clr', 'Pick a color');
10806
10893
  html += "Click in the input box to use the color picker:<br><br> ";
10807
10894
  html += "Custom Color: " + me.htmlCls.inputTextStr + "id='" + me.pre + "colorcustom' value='FF0000' size=8> ";
10808
10895
  html += me.htmlCls.buttonStr + "applycustomcolor'>Apply</button>";
@@ -10814,6 +10901,7 @@ class SetDialog {
10814
10901
  html += me.htmlCls.setHtmlCls.getPotentialHtml('url', dialogClass);
10815
10902
 
10816
10903
  html += me.htmlCls.divStr + "dl_symmetry' class='" + dialogClass + "'><br>";
10904
+ html += this.addNotebookTitle('dl_symmetry', 'Symmetry');
10817
10905
  html += me.htmlCls.divNowrapStr + "Symmetry: <select id='" + me.pre + "selectSymmetry'>";
10818
10906
  html += "</select>" + me.htmlCls.space3;
10819
10907
  html += me.htmlCls.buttonStr + "applysymmetry'>Apply</button>" + me.htmlCls.space3;
@@ -10821,10 +10909,12 @@ class SetDialog {
10821
10909
  html += "</div>";
10822
10910
 
10823
10911
  html += me.htmlCls.divStr + "dl_symd' style='max-width:400px' class='" + dialogClass + "'><br>";
10912
+ html += this.addNotebookTitle('dl_symd', 'Dynamically symmetry calculation using SymD');
10824
10913
 
10825
10914
  html += "</div>";
10826
10915
 
10827
10916
  html += me.htmlCls.divStr + "dl_contact' class='" + dialogClass + "'>";
10917
+ html += this.addNotebookTitle('dl_contact', 'Contact Map');
10828
10918
  html += "<span style='white-space:nowrap;font-weight:bold;'>Distance: <select id='" + me.pre + "contactdist'>";
10829
10919
  html += me.htmlCls.setHtmlCls.getOptionHtml(['4', '5', '6', '7', '8', '9', '10'], 4);
10830
10920
  html += "</select></span>";
@@ -10837,6 +10927,7 @@ class SetDialog {
10837
10927
  html += "</div>";
10838
10928
 
10839
10929
  html += me.htmlCls.divStr + "dl_hbonds' class='" + dialogClass + "'>";
10930
+ html += this.addNotebookTitle('dl_hbonds', 'Interaction Analysis');
10840
10931
  html += "1. Choose interaction types and their thresholds:<br>";
10841
10932
  html += "<div class='icn3d-box'><table border=0 width=450><tr>";
10842
10933
  html += "<td style='white-space:nowrap'>" + me.htmlCls.inputCheckStr + "id='" + me.pre + "analysis_hbond' checked>Hydrogen Bonds <span style='background-color:#" + me.htmlCls.hbondColor + "'>" + me.htmlCls.space3 + "</span></td>";
@@ -10935,6 +11026,7 @@ class SetDialog {
10935
11026
  html += "</div>";
10936
11027
 
10937
11028
  html += me.htmlCls.divStr + "dl_realign' class='" + dialogClass + "'>";
11029
+ html += this.addNotebookTitle('dl_realign', 'Realign by sequence');
10938
11030
 
10939
11031
  html += me.htmlCls.divNowrapStr + "1. Select sets below <br>or use your current selection:</div><br>";
10940
11032
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomRealign' multiple size='5' style='min-width:130px;'>";
@@ -10944,6 +11036,7 @@ class SetDialog {
10944
11036
  html += "</div>";
10945
11037
 
10946
11038
  html += me.htmlCls.divStr + "dl_realignbystruct' class='" + dialogClass + "' style='max-width:500px'>";
11039
+ html += this.addNotebookTitle('dl_realignbystruct', 'Realign by structure');
10947
11040
 
10948
11041
  //html += "<div><b>1</b>. There are two options to align chains. Option \"a\" is to select a list of chains below, and align all chains to the first chain. Option \"b\" is to select sets below or use your current selection, and align all chains pairwise.</div><br>";
10949
11042
  html += "<div><b>1</b>. Select sets below or use your current selection.</div><br>";
@@ -10959,6 +11052,7 @@ class SetDialog {
10959
11052
  html += "</div>";
10960
11053
 
10961
11054
  html += me.htmlCls.divStr + "dl_realigntwostru' class='" + dialogClass + "'>";
11055
+ html += this.addNotebookTitle('dl_realigntwostru', 'Realign two structure complexes');
10962
11056
 
10963
11057
  html += me.htmlCls.divNowrapStr + "1. Select sets below or use your current selection:</div><br>";
10964
11058
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomRealignByStruct2' multiple size='5' style='min-width:130px;'>";
@@ -10971,6 +11065,7 @@ class SetDialog {
10971
11065
 
10972
11066
 
10973
11067
  html += me.htmlCls.divStr + "dl_colorspectrumacrosssets' class='" + dialogClass + "'>";
11068
+ html += this.addNotebookTitle('dl_colorspectrumacrosssets', 'Set color spectrum across sets');
10974
11069
 
10975
11070
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
10976
11071
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorSpectrumAcross' multiple size='5' style='min-width:130px;'>";
@@ -10981,7 +11076,7 @@ class SetDialog {
10981
11076
 
10982
11077
 
10983
11078
  html += me.htmlCls.divStr + "dl_colorspectrumbysets' class='" + dialogClass + "'>";
10984
-
11079
+ html += this.addNotebookTitle('dl_colorspectrumbysets', 'Set color spectrum for residues in sets');
10985
11080
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
10986
11081
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorSpectrum' multiple size='5' style='min-width:130px;'>";
10987
11082
  html += "</select></div>";
@@ -10991,7 +11086,7 @@ class SetDialog {
10991
11086
 
10992
11087
 
10993
11088
  html += me.htmlCls.divStr + "dl_colorrainbowacrosssets' class='" + dialogClass + "'>";
10994
-
11089
+ html += this.addNotebookTitle('dl_colorrainbowacrosssets', 'Set color rainbow across sets');
10995
11090
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
10996
11091
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorRainbowAcross' multiple size='5' style='min-width:130px;'>";
10997
11092
  html += "</select></div>";
@@ -11001,7 +11096,7 @@ class SetDialog {
11001
11096
 
11002
11097
 
11003
11098
  html += me.htmlCls.divStr + "dl_colorrainbowbysets' class='" + dialogClass + "'>";
11004
-
11099
+ html += this.addNotebookTitle('dl_colorrainbowbysets', 'Set color rainbow for residues in sets');
11005
11100
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
11006
11101
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorRainbow' multiple size='5' style='min-width:130px;'>";
11007
11102
  html += "</select></div>";
@@ -11011,12 +11106,15 @@ class SetDialog {
11011
11106
 
11012
11107
 
11013
11108
  html += me.htmlCls.divStr + "dl_allinteraction' style='background-color:white' class='" + dialogClass + "'>";
11109
+ html += this.addNotebookTitle('dl_allinteraction', 'All interactions', true);
11014
11110
  html += "</div>";
11015
11111
 
11016
11112
  html += me.htmlCls.divStr + "dl_interactionsorted' style='background-color:white' class='" + dialogClass + "'>";
11113
+ html += this.addNotebookTitle('dl_interactionsorted', 'Sorted interactions', true);
11017
11114
  html += "</div>";
11018
11115
 
11019
11116
  html += me.htmlCls.divStr + "dl_linegraph' style='background-color:white' class='" + dialogClass + "'>";
11117
+ html += this.addNotebookTitle('dl_linegraph', '2D Interaction Network');
11020
11118
 
11021
11119
  html += me.htmlCls.divNowrapStr + '<div style="width:20px; margin-top:6px; display:inline-block;"><span id="'
11022
11120
  + me.pre + 'dl_linegraphcolor_expand" class="ui-icon ui-icon-plus icn3d-expand icn3d-link" style="display:none; width:15px;" title="Expand"></span><span id="'
@@ -11047,6 +11145,7 @@ class SetDialog {
11047
11145
  html += "</div>";
11048
11146
 
11049
11147
  html += me.htmlCls.divStr + "dl_scatterplot' style='background-color:white' class='" + dialogClass + "'>";
11148
+ html += this.addNotebookTitle('dl_scatterplot', '2D Interaction Map');
11050
11149
 
11051
11150
  html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3;
11052
11151
 
@@ -11073,6 +11172,7 @@ class SetDialog {
11073
11172
  html += "</div>";
11074
11173
 
11075
11174
  html += me.htmlCls.divStr + "dl_contactmap' style='background-color:white' class='" + dialogClass + "'>";
11175
+ html += this.addNotebookTitle('dl_contactmap', 'Contact Map');
11076
11176
 
11077
11177
  html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3 + "</div>";
11078
11178
 
@@ -11091,6 +11191,7 @@ class SetDialog {
11091
11191
  html += "</div>";
11092
11192
 
11093
11193
  html += me.htmlCls.divStr + "dl_alignerrormap' style='background-color:white' class='" + dialogClass + "'>";
11194
+ html += this.addNotebookTitle('dl_alignerrormap', 'PAE Map');
11094
11195
 
11095
11196
  html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3 + "</div>";
11096
11197
 
@@ -11118,6 +11219,7 @@ class SetDialog {
11118
11219
  html += "</div>";
11119
11220
 
11120
11221
  html += me.htmlCls.divStr + "dl_elecmap2fofc' class='" + dialogClass + "'>";
11222
+ html += this.addNotebookTitle('dl_elecmap2fofc', 'Electron Density 2F0-Fc Map');
11121
11223
  html += "<span style='white-space:nowrap;font-weight:bold;'>Contour at: <select id='" + me.pre + "sigma2fofc'>";
11122
11224
 
11123
11225
  html += me.htmlCls.setHtmlCls.getOptionHtml(optArray1, 3);
@@ -11126,6 +11228,7 @@ class SetDialog {
11126
11228
  html += "</div>";
11127
11229
 
11128
11230
  html += me.htmlCls.divStr + "dl_elecmapfofc' class='" + dialogClass + "'>";
11231
+ html += this.addNotebookTitle('dl_elecmapfofc', 'Electron Density F0-Fc Map');
11129
11232
  html += "<span style='white-space:nowrap;font-weight:bold;'>Contour at: <select id='" + me.pre + "sigmafofc'>";
11130
11233
 
11131
11234
  html += me.htmlCls.setHtmlCls.getOptionHtml(optArray1, 5);
@@ -11134,6 +11237,7 @@ class SetDialog {
11134
11237
  html += "</div>";
11135
11238
 
11136
11239
  html += me.htmlCls.divStr + "dl_emmap' class='" + dialogClass + "'>";
11240
+ html += this.addNotebookTitle('dl_emmap', 'EM Density Map');
11137
11241
  html += "<span style='white-space:nowrap;font-weight:bold;'>Contour at: <select id='" + me.pre + "empercentage'>";
11138
11242
 
11139
11243
  html += me.htmlCls.setHtmlCls.getOptionHtml(['0', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100'], 3);
@@ -11142,6 +11246,7 @@ class SetDialog {
11142
11246
  html += "</div>";
11143
11247
 
11144
11248
  html += me.htmlCls.divStr + "dl_aroundsphere' class='" + dialogClass + "'>";
11249
+ html += this.addNotebookTitle('dl_aroundsphere', 'Select a sphere around a set of residues');
11145
11250
  html += me.htmlCls.divNowrapStr + "1. Select the first set:</div>";
11146
11251
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomSphere2' multiple size='3' style='min-width:130px;'>";
11147
11252
  html += "</select></div><br>";
@@ -11156,6 +11261,7 @@ class SetDialog {
11156
11261
  html += "</div>";
11157
11262
 
11158
11263
  html += me.htmlCls.divStr + "dl_adjustmem' class='" + dialogClass + "'>";
11264
+ html += this.addNotebookTitle('dl_adjustmem', 'Adjust membranes');
11159
11265
  html += "<b>Note</b>: The membranes are parallel to the X-Y plane. The center of the membranes is at Z = 0. <br/><br/>";
11160
11266
  html += me.htmlCls.divNowrapStr + "1. Extracellular membrane Z-axis position: " + me.htmlCls.inputTextStr + "id='" + me.pre + "extra_mem_z' value='' size='3'> &#197;</div><br/>";
11161
11267
  html += me.htmlCls.divNowrapStr + "2. intracellular membrane Z-axis position: " + me.htmlCls.inputTextStr + "id='" + me.pre + "intra_mem_z' value='' size='3'> &#197;</div><br/>";
@@ -11163,6 +11269,7 @@ class SetDialog {
11163
11269
  html += "</div>";
11164
11270
 
11165
11271
  html += me.htmlCls.divStr + "dl_selectplane' class='" + dialogClass + "'>";
11272
+ html += this.addNotebookTitle('dl_selectplane', 'Select a plane');
11166
11273
  html += "<b>Note</b>: The membranes are parallel to the X-Y plane. The center of the membranes is at Z = 0. <br/><br/>";
11167
11274
  html += me.htmlCls.divNowrapStr + "1. Z-axis position of the first X-Y plane: " + me.htmlCls.inputTextStr + "id='" + me.pre + "selectplane_z1' value='15' size='3'> &#197;</div><br/>";
11168
11275
  html += me.htmlCls.divNowrapStr + "2. Z-axis position of the second X-Y plane: " + me.htmlCls.inputTextStr + "id='" + me.pre + "selectplane_z2' value='-15' size='3'> &#197;</div><br/>";
@@ -11170,6 +11277,7 @@ class SetDialog {
11170
11277
  html += "</div>";
11171
11278
 
11172
11279
  html += me.htmlCls.divStr + "dl_addlabel' class='" + dialogClass + "'>";
11280
+ html += this.addNotebookTitle('dl_addlabel', 'Add labels between two atoms');
11173
11281
  html += "1. Text: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labeltext' value='Text' size=4><br/>";
11174
11282
  html += "2. Size: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelsize' value='18' size=4 maxlength=2><br/>";
11175
11283
  html += "3. Color: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelcolor' value='" + defaultColor + "' size=4><br/>";
@@ -11184,6 +11292,7 @@ class SetDialog {
11184
11292
  html += "</div>";
11185
11293
 
11186
11294
  html += me.htmlCls.divStr + "dl_addlabelselection' class='" + dialogClass + "'>";
11295
+ html += this.addNotebookTitle('dl_addlabelselection', 'Add labels for your selection');
11187
11296
  html += "1. Text: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labeltext2' value='Text' size=4><br/>";
11188
11297
  html += "2. Size: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelsize2' value='18' size=4 maxlength=2><br/>";
11189
11298
  html += "3. Color: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelcolor2' value='" + defaultColor + "' size=4><br/>";
@@ -11192,11 +11301,13 @@ class SetDialog {
11192
11301
  html += "</div>";
11193
11302
 
11194
11303
  html += me.htmlCls.divStr + "dl_labelColor' class='" + dialogClass + "'>";
11304
+ html += this.addNotebookTitle('dl_labelColor', 'Change label color');
11195
11305
  html += "Color for all labels: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelcolorall' value='" + defaultColor + "' size=4><br/><br/>";
11196
11306
  html += me.htmlCls.spanNowrapStr + me.htmlCls.buttonStr + "applylabelcolor'>Display</button></span>";
11197
11307
  html += "</div>";
11198
11308
 
11199
11309
  html += me.htmlCls.divStr + "dl_distance' class='" + dialogClass + "'>";
11310
+ html += this.addNotebookTitle('dl_distance', 'Measure distance');
11200
11311
  if(me.utilsCls.isMobile()) {
11201
11312
  html += me.htmlCls.spanNowrapStr + "1. Touch TWO atoms</span><br/>";
11202
11313
  }
@@ -11208,6 +11319,7 @@ class SetDialog {
11208
11319
  html += "</div>";
11209
11320
 
11210
11321
  html += me.htmlCls.divStr + "dl_stabilizer' class='" + dialogClass + "'>";
11322
+ html += this.addNotebookTitle('dl_stabilizer', 'Add a stabilizer');
11211
11323
  if(me.utilsCls.isMobile()) {
11212
11324
  html += me.htmlCls.spanNowrapStr + "1. Touch TWO atoms</span><br/>";
11213
11325
  }
@@ -11219,6 +11331,7 @@ class SetDialog {
11219
11331
  html += "</div>";
11220
11332
 
11221
11333
  html += me.htmlCls.divStr + "dl_disttwosets' class='" + dialogClass + "'>";
11334
+ html += this.addNotebookTitle('dl_disttwosets', 'Measure the distance between two sets');
11222
11335
  html += me.htmlCls.spanNowrapStr + "1. Select two sets</span><br/>";
11223
11336
  html += "<table border=0 width=400 cellspacing=10><tr><td>";
11224
11337
 
@@ -11240,6 +11353,7 @@ class SetDialog {
11240
11353
 
11241
11354
 
11242
11355
  html += me.htmlCls.divStr + "dl_linebtwsets' class='" + dialogClass + "'>";
11356
+ html += this.addNotebookTitle('dl_linebtwsets', 'Add a line between two sets');
11243
11357
  html += me.htmlCls.spanNowrapStr + "1. Select two sets</span><br/>";
11244
11358
  html += "<table border=0 width=400 cellspacing=10><tr><td>";
11245
11359
 
@@ -11273,6 +11387,7 @@ class SetDialog {
11273
11387
 
11274
11388
 
11275
11389
  html += me.htmlCls.divStr + "dl_cartoonshape' class='" + dialogClass + "'>";
11390
+ html += this.addNotebookTitle('dl_cartoonshape', 'Cartoon Shape');
11276
11391
  html += me.htmlCls.spanNowrapStr + "1. Select a set:</span><br/>";
11277
11392
  html += "<div style='text-indent:1.1em'><select style='max-width:200px' id='" + me.pre + "cartoonshape' multiple size='5' style='min-width:130px;'>";
11278
11393
  html += "</select></div><br>";
@@ -11295,6 +11410,7 @@ class SetDialog {
11295
11410
 
11296
11411
 
11297
11412
  html += me.htmlCls.divStr + "dl_distmanysets' class='" + dialogClass + "'>";
11413
+ html += this.addNotebookTitle('dl_distmanysets', 'Measure distances among many sets');
11298
11414
  html += me.htmlCls.spanNowrapStr + "1. Select sets for pairwise distances</span><br/>";
11299
11415
  html += "<table border=0 width=400 cellspacing=10><tr><td>";
11300
11416
 
@@ -11314,6 +11430,7 @@ class SetDialog {
11314
11430
  html += "</div>";
11315
11431
 
11316
11432
  html += me.htmlCls.divStr + "dl_stabilizer_rm' class='" + dialogClass + "'>";
11433
+ html += this.addNotebookTitle('dl_stabilizer_rm', 'Remove a stabilizer');
11317
11434
  if(me.utilsCls.isMobile()) {
11318
11435
  html += me.htmlCls.spanNowrapStr + "1. Touch TWO atoms</span><br/>";
11319
11436
  }
@@ -11324,14 +11441,17 @@ class SetDialog {
11324
11441
  html += "</div>";
11325
11442
 
11326
11443
  html += me.htmlCls.divStr + "dl_thickness' class='" + dialogClass + "'>";
11444
+ html += this.addNotebookTitle('dl_thickness', 'Set thickness');
11327
11445
  html += me.htmlCls.setHtmlCls.setThicknessHtml('3dprint');
11328
11446
  html += "</div>";
11329
11447
 
11330
11448
  html += me.htmlCls.divStr + "dl_thickness2' class='" + dialogClass + "'>";
11449
+ html += this.addNotebookTitle('dl_thickness2', 'Set thickness');
11331
11450
  html += me.htmlCls.setHtmlCls.setThicknessHtml('style');
11332
11451
  html += "</div>";
11333
11452
 
11334
11453
  html += me.htmlCls.divStr + "dl_menupref' class='" + dialogClass + "'>";
11454
+ html += this.addNotebookTitle('dl_menupref', 'Preferences for menus');
11335
11455
  html += "<b>Note</b>: The following parameters will be saved in cache. You just need to set them once. <br><br>";
11336
11456
 
11337
11457
  html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "apply_menupref'>Apply</button></span>";
@@ -11347,6 +11467,7 @@ class SetDialog {
11347
11467
  html += "</div>";
11348
11468
 
11349
11469
  html += me.htmlCls.divStr + "dl_addtrack' class='" + dialogClass + "'>";
11470
+ html += this.addNotebookTitle('dl_addtrack', 'Add a track');
11350
11471
  html += " <input type='hidden' id='" + me.pre + "track_chainid' value=''>";
11351
11472
 
11352
11473
  html += me.htmlCls.divStr + "dl_addtrack_tabs' style='border:0px;'>";
@@ -11402,6 +11523,7 @@ class SetDialog {
11402
11523
  html += "</div>";
11403
11524
 
11404
11525
  html += me.htmlCls.divStr + "dl_saveselection' class='" + dialogClass + "'>";
11526
+ html += this.addNotebookTitle('dl_saveselection', 'Save Selection');
11405
11527
  let index =(ic && ic.defNames2Atoms) ? Object.keys(ic.defNames2Atoms).length : 1;
11406
11528
  let suffix = '';
11407
11529
  html += "Name: " + me.htmlCls.inputTextStr + "id='" + me.pre + "seq_command_name" + suffix + "' value='seq_" + index + "' size='5'> <br>";
@@ -11411,13 +11533,29 @@ class SetDialog {
11411
11533
 
11412
11534
 
11413
11535
  html += me.htmlCls.divStr + "dl_copyurl' style='width:520px;' class='" + dialogClass + "'>";
11536
+ html += this.addNotebookTitle('dl_copyurl', 'Share Link');
11537
+
11538
+ html += "1. <b>URLs Used in Browsers</b><br><br>";
11539
+
11414
11540
  html += "Please copy one of the URLs below. They show the same result.<br>(To add a title to share link, click \"Windows > Your Note\" and click \"File > Share Link\" again.)<br><br>";
11415
11541
  html += "Original URL with commands: <br><textarea id='" + me.pre + "ori_url' rows='4' style='width:100%'></textarea><br><br>";
11416
- html += "Lifelong Short URL:(To replace this URL, send a pull request to update share.html at <a href='https://github.com/ncbi/icn3d' target='_blank'>iCn3D GitHub</a>)<br>" + me.htmlCls.inputTextStr + "id='" + me.pre + "short_url' value='' style='width:100%'><br><br>";
11417
- html += "Lifelong Short URL + Window Title:(To update the window title, click \"Analysis > Your Note/Window Title\".)<br>" + me.htmlCls.inputTextStr + "id='" + me.pre + "short_url_title' value='' style='width:100%'><br><br>";
11542
+ if(!me.cfg.notebook) {
11543
+ html += "Lifelong Short URL:(To replace this URL, send a pull request to update share.html at <a href='https://github.com/ncbi/icn3d' target='_blank'>iCn3D GitHub</a>)<br>" + me.htmlCls.inputTextStr + "id='" + me.pre + "short_url' value='' style='width:100%'><br><br>";
11544
+ html += "Lifelong Short URL + Window Title:(To update the window title, click \"Analysis > Your Note/Window Title\".)<br>" + me.htmlCls.inputTextStr + "id='" + me.pre + "short_url_title' value='' style='width:100%'><br><br>";
11545
+ }
11546
+ html += "<br>";
11547
+
11548
+ html += "2. <b>Commands Used in Jupyter Noteboook</b><br><br>";
11549
+ html += "Please copy the following commands into a cell in Jupyter Notebook to show the same result.<br><br>";
11550
+
11551
+ html += '<textarea id="' + me.pre + 'jn_commands" rows="4" style="width:100%"></textarea><br>';
11552
+
11553
+ html += buttonStrTmp + me.pre + 'jn_copy">Copy Commands</button><br>';
11554
+
11418
11555
  html += "</div>";
11419
11556
 
11420
11557
  html += me.htmlCls.divStr + "dl_selectannotations' class='" + dialogClass + " icn3d-annotation' style='background-color:white;'>";
11558
+ html += this.addNotebookTitle('dl_selectannotations', 'Sequences & Annotations');
11421
11559
 
11422
11560
  html += me.htmlCls.divStr + "dl_annotations_tabs'>";
11423
11561
 
@@ -11446,6 +11584,7 @@ class SetDialog {
11446
11584
  html += "</div>";
11447
11585
 
11448
11586
  html += me.htmlCls.divStr + "dl_graph' style='background-color:white;' class='" + dialogClass + "'>";
11587
+ html += this.addNotebookTitle('dl_graph', 'Interactions');
11449
11588
  me.svgid = me.pre + 'icn3d_viz';
11450
11589
  html += '<style>';
11451
11590
  html += '#' + me.svgid + ' svg { border: 1px solid; font: 13px sans-serif; text-anchor: end; }';
@@ -11500,6 +11639,7 @@ class SetDialog {
11500
11639
  html += "</div>";
11501
11640
 
11502
11641
  html += me.htmlCls.divStr + "dl_area' class='" + dialogClass + "'>";
11642
+ html += this.addNotebookTitle('dl_area', 'Surface Area');
11503
11643
  html += "Solvent Accessible Surface Area(SASA) calculated using the <a href='https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0008140' target='_blank'>EDTSurf algorithm</a>: <br>";
11504
11644
  html += '(0-20% out is considered "in". 50-100% out is considered "out".)<br><br>';
11505
11645
  html += "<b>Toal</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "areavalue' value='' size='10'> &#8491;<sup>2</sup><br><br>";
@@ -11507,19 +11647,23 @@ class SetDialog {
11507
11647
  html += "</div>";
11508
11648
 
11509
11649
  html += me.htmlCls.divStr + "dl_colorbyarea' class='" + dialogClass + "'>";
11650
+ html += this.addNotebookTitle('dl_colorbyarea', 'Color by surface area');
11510
11651
  html += "<div style='width:500px'>Color each residue based on the percentage of solvent accessilbe surface area. The color ranges from blue, to white, to red for a percentage of 0, 35(variable), and 100, respectively.</div><br>";
11511
11652
  html += "<b>Middle Percentage(White)</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "midpercent' value='35' size='10'>% <br><br>";
11512
11653
  html += "<button style='white-space:nowrap;' id='" + me.pre + "applycolorbyarea'>Color</button><br/><br/>";
11513
11654
  html += "</div>";
11514
11655
 
11515
11656
  html += me.htmlCls.divStr + "dl_rmsd' class='" + dialogClass + "' style='max-width:300px'>";
11657
+ html += this.addNotebookTitle('dl_rmsd', 'RMSD', true);
11516
11658
 
11517
11659
  html += "</div>";
11518
11660
 
11519
11661
  html += me.htmlCls.divStr + "dl_buriedarea' class='" + dialogClass + "'>";
11662
+ html += this.addNotebookTitle('dl_buriedarea', 'Buried surface area', true);
11520
11663
  html += "</div>";
11521
11664
 
11522
11665
  html += me.htmlCls.divStr + "dl_propbypercentout' class='" + dialogClass + "'>";
11666
+ html += this.addNotebookTitle('dl_propbypercentout', 'Select residues basen on solvent accessilbe surface area');
11523
11667
  html += "<div style='width:400px'>Select residue based on the percentage of solvent accessilbe surface area. The values are in the range of 0-100.</div><br>";
11524
11668
  html += "<b>Min Percentage</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "minpercentout' value='0' size='10'>% <br>";
11525
11669
  html += "<b>Max Percentage</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "maxpercentout' value='100' size='10'>% <br>";
@@ -11527,6 +11671,7 @@ class SetDialog {
11527
11671
  html += "</div>";
11528
11672
 
11529
11673
  html += me.htmlCls.divStr + "dl_propbybfactor' class='" + dialogClass + "'>";
11674
+ html += this.addNotebookTitle('dl_propbybfactor', 'Select residues basen on B-factor');
11530
11675
  html += "<div style='width:400px'>Select residue based on B-factor. The values are in the range of 0-100.</div><br>";
11531
11676
  html += "<b>Min B-factor</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "minbfactor' value='0' size='10'>% <br>";
11532
11677
  html += "<b>Max B-factor</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "maxbfactor' value='100' size='10'>% <br>";
@@ -11534,9 +11679,11 @@ class SetDialog {
11534
11679
  html += "</div>";
11535
11680
 
11536
11681
  html += me.htmlCls.divStr + "dl_legend' class='" + dialogClass + "' style='max-width:500px; background-color:white'>";
11682
+ html += this.addNotebookTitle('dl_legend', 'Legend', true);
11537
11683
  html += "</div>";
11538
11684
 
11539
11685
  html += me.htmlCls.divStr + "dl_disttable' class='" + dialogClass + "'>";
11686
+ html += this.addNotebookTitle('dl_disttable', 'Distance Table', true);
11540
11687
  html += "</div>";
11541
11688
 
11542
11689
  html += "</div>";
@@ -14852,6 +14999,8 @@ class SetHtml {
14852
14999
  }
14853
15000
 
14854
15001
  html += me.htmlCls.divStr + "dl_" + name1 + "' class='" + dialogClass + "'>";
15002
+ html += me.htmlCls.setDialogCls.addNotebookTitle("dl_" + name1, 'DelPhi Potential');
15003
+
14855
15004
  html += me.htmlCls.divStr + "dl_" + name1 + "_tabs' style='border:0px;'>";
14856
15005
  html += "<ul>";
14857
15006
  html += "<li><a href='#" + me.pre + name1 + "tab1'>" + tab1 + "</a></li>";
@@ -15165,7 +15314,7 @@ class SetHtml {
15165
15314
  statefile = imageStr.substr(posState + matchedStrState.length, posStateEnd - posState- matchedStrState.length);
15166
15315
  //statefile = decodeURIComponent(statefile);
15167
15316
  statefile = decodeURIComponent(statefile + "\n" + commandStr);
15168
-
15317
+
15169
15318
  if(type === 'pdb') {
15170
15319
  await ic.pdbParserCls.loadPdbData(data);
15171
15320
 
@@ -22167,7 +22316,7 @@ class Scene {
22167
22316
  ic.cam.remove( ic.canvasUI.mesh );
22168
22317
  }
22169
22318
 
22170
- if (controllerInfo !== undefined){
22319
+ if (controller && controllerInfo !== undefined){
22171
22320
  // "trigger":{"button":0},
22172
22321
  // "squeeze":{"button":1},
22173
22322
  // "thumbstick":{"button":3,"xAxis":2,"yAxis":3}, "touchpad":{"button":2,"xAxis":0,"yAxis":1},
@@ -22249,8 +22398,11 @@ class Scene {
22249
22398
  ic.cam.remove( ic.canvasUI.mesh );
22250
22399
  } },
22251
22400
  sphere: { type: "button", position:{ top: margin + (btnHeight + margin), left: margin + 4*(btnWidth + margin) }, width: btnWidth, height: btnHeight, fontColor: fontColor, fontSize: fontSize, backgroundColor: bkgdColor, hover: hoverColor, onSelect: function() {
22252
- ic.setOptionCls.setStyle("proteins", "sphere");
22253
- ic.setOptionCls.setStyle("nucleotides", "sphere");
22401
+ // ic.setOptionCls.setStyle("proteins", "sphere");
22402
+ // ic.setOptionCls.setStyle("nucleotides", "sphere");
22403
+ ic.opts['surface'] = 'molecular surface';
22404
+ ic.applyMapCls.applySurfaceOptions();
22405
+
22254
22406
  ic.cam.remove( ic.canvasUI.mesh );
22255
22407
  } },
22256
22408
 
@@ -22316,14 +22468,17 @@ class Scene {
22316
22468
  //ic.canvasUILog.updateElement( "info", "ERROR: " + err );
22317
22469
  }
22318
22470
  } },
22319
- // delphi: { type: "button", position:{ top: margin + 4*(btnHeight + margin), left: margin + 2*(btnWidth + margin)}, width: btnWidth, height: btnHeight, fontColor: fontColor, fontSize: fontSize, backgroundColor: bkgdColor, hover: hoverColor, onSelect: function() {
22320
- // ic.debugStr = '###ic.hAtoms: ' + Object.keys(ic.hAtoms).length + ' ic.dAtoms: ' + Object.keys(ic.dAtoms).length;
22321
- // let gsize = 65, salt = 0.15, contour = 2, bSurface = true;
22322
- // ic.delphiCls.CalcPhi(gsize, salt, contour, bSurface);
22323
- // ic.canvasUILog.updateElement( "info", "debug: " + ic.debugStr );
22324
- // ic.cam.remove( ic.canvasUI.mesh );
22325
- // } },
22326
- removeLabel: { type: "button", position:{ top: margin + 4*(btnHeight + margin), left: margin + 2*(btnWidth + margin) }, width: btnWidth, height: btnHeight, fontColor: fontColor, fontSize: fontSize, backgroundColor: bkgdColor, hover: hoverColor, onSelect: function() {
22471
+ delphi: { type: "button", position:{ top: margin + 4*(btnHeight + margin), left: margin + 2*(btnWidth + margin)}, width: btnWidth, height: btnHeight, fontColor: fontColor, fontSize: fontSize, backgroundColor: bkgdColor, hover: hoverColor, onSelect: async function() {
22472
+ let gsize = 65, salt = 0.15, contour = 2, bSurface = true;
22473
+ ic.phisurftype = 22; // molecular surface
22474
+ ic.phisurfop = 1.0; // opacity
22475
+ ic.phisurfwf = 'no'; // wireframe
22476
+ await ic.delphiCls.CalcPhi(gsize, salt, contour, bSurface);
22477
+
22478
+ //ic.canvasUILog.updateElement( "info", "debug: " + ic.debugStr );
22479
+ ic.cam.remove( ic.canvasUI.mesh );
22480
+ } },
22481
+ removeLabel: { type: "button", position:{ top: margin + 4*(btnHeight + margin), left: margin + 3*(btnWidth + margin) }, width: btnWidth, height: btnHeight, fontColor: fontColor, fontSize: fontSize, backgroundColor: bkgdColor, hover: hoverColor, onSelect: function() {
22327
22482
  for(let name in ic.labels) {
22328
22483
  //if(name === 'residue' || name === 'custom') {
22329
22484
  ic.labels[name] = [];
@@ -22333,7 +22488,7 @@ class Scene {
22333
22488
  ic.drawCls.draw();
22334
22489
  ic.cam.remove( ic.canvasUI.mesh );
22335
22490
  } },
22336
- reset: { type: "button", position:{ top: margin + 4*(btnHeight + margin), left: margin + 3*(btnWidth + margin) }, width: btnWidth, height: btnHeight, fontColor: fontColor, fontSize: fontSize, backgroundColor: bkgdColor, hover: hoverColor, onSelect: function() {
22491
+ reset: { type: "button", position:{ top: margin + 4*(btnHeight + margin), left: margin + 4*(btnWidth + margin) }, width: btnWidth, height: btnHeight, fontColor: fontColor, fontSize: fontSize, backgroundColor: bkgdColor, hover: hoverColor, onSelect: function() {
22337
22492
  ic.selectionCls.resetAll();
22338
22493
 
22339
22494
  ic.cam.remove( ic.canvasUI.mesh );
@@ -22353,7 +22508,8 @@ class Scene {
22353
22508
  ribbon: "Ribbon",
22354
22509
  schematic: "Schem.",
22355
22510
  stick: "Stick",
22356
- sphere: "Sphere",
22511
+ //sphere: "Sphere",
22512
+ sphere: "Surface",
22357
22513
 
22358
22514
  color: "Color",
22359
22515
  rainbow: "Rainbow",
@@ -22373,7 +22529,7 @@ class Scene {
22373
22529
 
22374
22530
  analysis: "Analysis",
22375
22531
  interaction: "Interact",
22376
- //delphi: "DelPhi",
22532
+ delphi: "DelPhi",
22377
22533
  removeLabel: "No Label",
22378
22534
  reset: "Reset"
22379
22535
  };
@@ -22424,6 +22580,8 @@ class Scene {
22424
22580
 
22425
22581
  for(let i=0; i<=1; i++){
22426
22582
  const controller = ic.renderer.xr.getController( i );
22583
+ if(!controller) continue;
22584
+
22427
22585
  ic.dolly.add( controller );
22428
22586
 
22429
22587
  controller.add( line.clone() );
@@ -25733,6 +25891,8 @@ class TextSprite {
25733
25891
  sprite.scale.set(expandWidthFactor * factor, factor, 1.0);
25734
25892
  }
25735
25893
 
25894
+ sprite.renderOrder = 1; // larger than the default 0
25895
+
25736
25896
  return sprite;
25737
25897
  }
25738
25898
 
@@ -28522,11 +28682,12 @@ class Surface {
28522
28682
  cfg.isovalue = ic.mapData.contourPhi;
28523
28683
  cfg.type = 'phi';
28524
28684
  cfg.loadPhiFrom = ic.loadPhiFrom;
28525
-
28685
+
28526
28686
  ps = this.SetupMap(cfg);
28527
28687
  }
28528
28688
  else {
28529
28689
  //1: van der waals surface, 2: molecular surface, 3: solvent accessible surface
28690
+
28530
28691
 
28531
28692
  //exclude water
28532
28693
  let atomsToShow = me.hashUtilsCls.exclHash(atoms, ic.water);
@@ -28560,7 +28721,7 @@ class Surface {
28560
28721
 
28561
28722
  ps = this.SetupSurface(cfg);
28562
28723
  }
28563
-
28724
+
28564
28725
  if(ic.bCalcArea) {
28565
28726
  ic.areavalue = ps.area.toFixed(2);
28566
28727
  let serial2area = ps.serial2area;
@@ -28639,7 +28800,7 @@ class Surface {
28639
28800
  //geo = new THREE.Geometry();
28640
28801
  geo = new THREE.BufferGeometry();
28641
28802
  let verticeArray = [], colorArray = [], indexArray = [], color;
28642
-
28803
+
28643
28804
  //var geoVertices = verts.map(function (v) {
28644
28805
  let offset = 0;
28645
28806
  for(let i = 0, il = verts.length; i < il; ++i, offset += 3) {
@@ -28714,9 +28875,8 @@ class Surface {
28714
28875
  //geo.normalsNeedUpdate = true;
28715
28876
 
28716
28877
  geo.computeVertexNormals();
28717
-
28878
+
28718
28879
  geo.type = 'Surface'; // to be recognized in vrml.js for 3D printing
28719
-
28720
28880
  // use the regular way to show transparency for type == 15 (surface with potential)
28721
28881
  // if(ic.transparentRenderOrder && (type == 1 || type == 2 || type == 3)) { // WebGL has some ordering problem when dealing with transparency
28722
28882
  if(ic.transparentRenderOrder) { // WebGL has some ordering problem when dealing with transparency
@@ -28904,7 +29064,7 @@ class Surface {
28904
29064
  mesh.renderOrder = -2; // default: 0, picking: -1
28905
29065
 
28906
29066
  ic.mdl.add(mesh);
28907
-
29067
+
28908
29068
  if(type == 11 || type == 12) {
28909
29069
  ic.prevMaps.push(mesh);
28910
29070
  }
@@ -28987,7 +29147,7 @@ class Surface {
28987
29147
 
28988
29148
  SetupMap(data) { let ic = this.icn3d; ic.icn3dui;
28989
29149
  let ps = new ElectronMap(ic);
28990
-
29150
+
28991
29151
  ps.initparm(data.header, data.data, data.matrix, data.isovalue, data.center, data.maxdist,
28992
29152
  data.pmin, data.pmax, data.water, data.type, data.rmsd_supr, data.loadPhiFrom, data.icn3d);
28993
29153
 
@@ -28996,7 +29156,7 @@ class Surface {
28996
29156
  if(!data.header.bSurface) ps.buildboundary();
28997
29157
 
28998
29158
  if(!data.header.bSurface) ps.marchingcube();
28999
-
29159
+
29000
29160
  ps.vpBits = null; // uint8 array of bitmasks
29001
29161
  //ps.vpDistance = null; // floatarray of _squared_ distances
29002
29162
  ps.vpAtomID = null; // intarray
@@ -30834,6 +30994,7 @@ class Impostor {
30834
30994
 
30835
30995
  setParametersForShader (opacity) { let ic = this.icn3d, me = ic.icn3dui;
30836
30996
  let background = me.parasCls.backgroundColors[ic.opts.background.toLowerCase()];
30997
+ if(!background) background = me.parasCls.thr(0x000000);
30837
30998
 
30838
30999
  let near = 2.5*ic.maxD;
30839
31000
  let far = 4*ic.maxD;
@@ -32020,10 +32181,10 @@ class Alternate {
32020
32181
 
32021
32182
  // show membranes
32022
32183
  if(ic.bOpm) {
32023
- //if(window.dialog) window.dialog.dialog( "close" );
32184
+ //if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
32024
32185
 
32025
32186
  let html = me.utilsCls.getMemDesc();
32026
- $("#" + ic.pre + "dl_rmsd").html(html);
32187
+ $("#" + ic.pre + "dl_rmsd_html").html(html);
32027
32188
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'Membranes');
32028
32189
  }
32029
32190
  }
@@ -32194,6 +32355,8 @@ class Alternate {
32194
32355
 
32195
32356
  for(let i = 0, il = ic.controllers.length; i < il; ++i) {
32196
32357
  let controller = ic.controllers[i];
32358
+ if(!controller) continue;
32359
+
32197
32360
  dt = (i % 2 == 0) ? dt : -dt; // dt * y;
32198
32361
  thisClass.handleController( controller, dt, controller.userData.selectPressed, controller.userData.squeezePressed, result.xArray, result.yArray );
32199
32362
  //thisClass.handleController( controller, dt, pressed );
@@ -32202,13 +32365,13 @@ class Alternate {
32202
32365
 
32203
32366
  if ( ic.renderer.xr.isPresenting){
32204
32367
  if(ic.canvasUI) ic.canvasUI.update();
32205
- //if(ic.canvasUILog) ic.canvasUILog.update();
32368
+ if(ic.canvasUILog) ic.canvasUILog.update();
32206
32369
  }
32207
32370
  }
32208
32371
  else if(ic.bAr) {
32209
32372
  if ( ic.renderer.xr.isPresenting ){
32210
32373
  ic.gestures.update();
32211
- //if(ic.canvasUILog) ic.canvasUILog.update();
32374
+ if(ic.canvasUILog) ic.canvasUILog.update();
32212
32375
  }
32213
32376
  }
32214
32377
 
@@ -34404,22 +34567,28 @@ class SetColor {
34404
34567
 
34405
34568
  case 'ig strand':
34406
34569
  if(ic.bShowRefnum) {
34407
- for(let resid in ic.resid2refnum) {
34408
- let refnumLabel = ic.resid2refnum[resid];
34409
- let color;
34410
- if(!refnumLabel) {
34411
- color = me.parasCls.thr(me.htmlCls.GREYB);
34570
+ let color;
34571
+ for(let resid in ic.residues) {
34572
+ if(!ic.resid2refnum[resid]) {
34573
+ color = me.parasCls.thr('#FFFFFF');
34412
34574
  }
34413
34575
  else {
34414
- let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
34415
- let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
34416
- color = ic.showSeqCls.getRefnumColor(currStrand);
34417
-
34418
- if(ic.residIgLoop.hasOwnProperty(resid)) {
34576
+ let refnumLabel = ic.resid2refnum[resid];
34577
+
34578
+ if(!refnumLabel) {
34419
34579
  color = me.parasCls.thr(me.htmlCls.GREYB);
34420
34580
  }
34581
+ else {
34582
+ let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
34583
+ let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
34584
+ color = ic.showSeqCls.getRefnumColor(currStrand);
34585
+
34586
+ if(ic.residIgLoop.hasOwnProperty(resid)) {
34587
+ color = me.parasCls.thr(me.htmlCls.GREYB);
34588
+ }
34589
+ }
34421
34590
  }
34422
-
34591
+
34423
34592
  for (let i in ic.residues[resid]) {
34424
34593
  let atom = ic.atoms[i];
34425
34594
  atom.color = me.parasCls.thr(color);
@@ -34433,20 +34602,26 @@ class SetColor {
34433
34602
 
34434
34603
  case 'ig protodomain':
34435
34604
  if(ic.bShowRefnum) {
34436
- for(let resid in ic.resid2refnum) {
34437
- let refnumLabel = ic.resid2refnum[resid];
34438
- let color;
34439
- if(!refnumLabel) {
34440
- color = me.parasCls.thr(me.htmlCls.GREYB);
34605
+ let color;
34606
+ for(let resid in ic.residues) {
34607
+ if(!ic.resid2refnum[resid]) {
34608
+ color = me.parasCls.thr('#FFFFFF');
34441
34609
  }
34442
34610
  else {
34443
- let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
34444
- let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
34445
- color = ic.showSeqCls.getProtodomainColor(currStrand);
34611
+ let refnumLabel = ic.resid2refnum[resid];
34446
34612
 
34447
- if(ic.residIgLoop.hasOwnProperty(resid)) {
34613
+ if(!refnumLabel) {
34448
34614
  color = me.parasCls.thr(me.htmlCls.GREYB);
34449
34615
  }
34616
+ else {
34617
+ let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
34618
+ let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
34619
+ color = ic.showSeqCls.getProtodomainColor(currStrand);
34620
+
34621
+ if(ic.residIgLoop.hasOwnProperty(resid)) {
34622
+ color = me.parasCls.thr(me.htmlCls.GREYB);
34623
+ }
34624
+ }
34450
34625
  }
34451
34626
 
34452
34627
  for (let i in ic.residues[resid]) {
@@ -35224,11 +35399,13 @@ class SetOption {
35224
35399
  bClose = true;
35225
35400
  }
35226
35401
 
35227
- $("#" + me.pre + "dl_legend").html(html);
35228
- me.htmlCls.dialogCls.openDlg('dl_legend', 'Color Legend');
35402
+ if(html) {
35403
+ $("#" + me.pre + "dl_legend_html").html(html);
35404
+ me.htmlCls.dialogCls.openDlg('dl_legend', 'Color Legend');
35405
+ }
35229
35406
 
35230
35407
  if(bClose) {
35231
- if(window.dialog) window.dialog.dialog( "close" );
35408
+ if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
35232
35409
  }
35233
35410
  }
35234
35411
 
@@ -35390,7 +35567,7 @@ class SetOption {
35390
35567
  "C' Strand": "6495ED",
35391
35568
  "C'' Strand": "006400",
35392
35569
  "D Strand": "00FF00",
35393
- "E Strand": "F7DC6F", //"F0E68C",
35570
+ "E Strand": "FFFF00", //"F0E68C",
35394
35571
  "F Strand": "FFA500",
35395
35572
  "G Strand": "FF0000",
35396
35573
  "G* Strand": "8B0000",
@@ -35417,12 +35594,12 @@ class SetOption {
35417
35594
  const name2color = {
35418
35595
  "A Strand": "0000FF",
35419
35596
  "B Strand": "006400",
35420
- "C Strand": "F7DC6F", //"F0E68C",
35597
+ "C Strand": "FFFF00", //"F0E68C",
35421
35598
  "C' Strand": "FFA500",
35422
35599
  "C'' Strand": "FF0000",
35423
35600
  "D Strand": "0000FF",
35424
35601
  "E Strand": "006400",
35425
- "F Strand": "F7DC6F", //"F0E68C",
35602
+ "F Strand": "FFFF00", //"F0E68C",
35426
35603
  "G Strand": "FFA500",
35427
35604
  "Loop": "CCCCCC"
35428
35605
  };
@@ -37642,6 +37819,7 @@ class Domain3d {
37642
37819
  this.icn3d = icn3d;
37643
37820
 
37644
37821
  //this.dcut = 8; // threshold for C-alpha interactions
37822
+
37645
37823
  // It seemed the threshold 7 angstrom works better
37646
37824
  this.dcut = 7; // threshold for C-alpha interactions
37647
37825
 
@@ -37677,6 +37855,9 @@ class Domain3d {
37677
37855
  this.c_delta = 3; // cut set parameter
37678
37856
  this.nc_fact = 0.0; // size factor for internal contacts
37679
37857
 
37858
+ // added by Jiyao
37859
+ this.min_contacts = 10; // minimum number of contacts to be considered as neighbors
37860
+
37680
37861
  //let this.elements[2*this.MAX_SSE]; // sets of this.elements to be split
37681
37862
  this.elements = [];
37682
37863
  this.elements.length = 2*this.MAX_SSE;
@@ -38225,6 +38406,7 @@ class Domain3d {
38225
38406
  //https://www.geeksforgeeks.org/number-groups-formed-graph-friends/
38226
38407
  countUtil(ss1, sheetNeighbor, existing_groups) {
38227
38408
  this.visited[ss1] = true;
38409
+
38228
38410
  if(!this.groupnum2sheet[existing_groups]) this.groupnum2sheet[existing_groups] = [];
38229
38411
  this.groupnum2sheet[existing_groups].push(parseInt(ss1));
38230
38412
 
@@ -38268,6 +38450,7 @@ class Domain3d {
38268
38450
  let chnid = residueArray[0].substr(0, residueArray[0].lastIndexOf('_'));
38269
38451
 
38270
38452
  let substructItem = {};
38453
+ let pos2resi = {};
38271
38454
  for(let i = 0; i < residueArray.length; ++i) {
38272
38455
  let resid = residueArray[i];
38273
38456
 
@@ -38305,22 +38488,26 @@ class Domain3d {
38305
38488
  x0.push(atom.coord.x);
38306
38489
  y0.push(atom.coord.y);
38307
38490
  z0.push(atom.coord.z);
38308
- resiArray.push(resi);
38491
+ //resiArray.push(resi);
38492
+ resiArray.push(i+1);
38493
+ pos2resi[i+1] = resi;
38309
38494
 
38310
38495
  if(atom.ssend) {
38311
- substructItem.To = parseInt(resi);
38496
+ //substructItem.To = parseInt(resi);
38497
+ substructItem.To = i + 1;
38312
38498
  substructItem.x2 = atom.coord.x;
38313
38499
  substructItem.y2 = atom.coord.y;
38314
38500
  substructItem.z2 = atom.coord.z;
38315
38501
 
38316
38502
  substructItem.Sheet = (atom.ss == 'sheet') ? true : false;
38317
38503
  substruct.push(substructItem);
38318
- substructItem = {};
38504
+ substructItem = {};
38319
38505
  }
38320
38506
 
38321
38507
  // a residue could be both start and end. check ssend first, then check ssbegin
38322
38508
  if(atom.ssbegin) {
38323
- substructItem.From = parseInt(resi);
38509
+ //substructItem.From = parseInt(resi);
38510
+ substructItem.From = i + 1;
38324
38511
  substructItem.x1 = atom.coord.x;
38325
38512
  substructItem.y1 = atom.coord.y;
38326
38513
  substructItem.z1 = atom.coord.z;
@@ -38340,7 +38527,8 @@ class Domain3d {
38340
38527
  }
38341
38528
 
38342
38529
  let seqLen = residueArray.length; // + resiOffset;
38343
- let lastResi = resiArray[seqLen - 1];
38530
+ //let lastResi = resiArray[seqLen - 1];
38531
+ let lastResi = seqLen;
38344
38532
 
38345
38533
  // get a list of Calpha-Calpha contacts
38346
38534
  ///list< pair< pair< int, let >, let > >
@@ -38419,7 +38607,8 @@ class Domain3d {
38419
38607
  let ss2 = parseInt(ssPair[1]);
38420
38608
 
38421
38609
  // both are sheets
38422
- if(substruct[ss1 - 1].Sheet && substruct[ss2 - 1].Sheet) {
38610
+ // min number of contacts: this.min_contacts
38611
+ if(substruct[ss1 - 1].Sheet && substruct[ss2 - 1].Sheet && ctable[pair] >= this.min_contacts ) {
38423
38612
  if(!sheetNeighbor[ss1]) sheetNeighbor[ss1] = {};
38424
38613
  if(!sheetNeighbor[ss2]) sheetNeighbor[ss2] = {};
38425
38614
 
@@ -38442,13 +38631,13 @@ class Domain3d {
38442
38631
  // If not in any group.
38443
38632
  if (this.visited[ss1] == false) {
38444
38633
  existing_groups++;
38445
-
38634
+
38446
38635
  this.countUtil(ss1, sheetNeighbor, existing_groups);
38447
38636
  }
38448
38637
  }
38449
38638
 
38450
38639
  // get sheet2sheetnum
38451
- // each neighboring sheet willbe represented by the sheet with the smallest sse
38640
+ // each neighboring sheet will be represented by the sheet with the smallest sse
38452
38641
  for(let groupnum in this.groupnum2sheet) {
38453
38642
  let ssArray = this.groupnum2sheet[groupnum].sort();
38454
38643
  for(let i = 0, il = ssArray.length; i < il; ++i) {
@@ -38551,7 +38740,7 @@ class Domain3d {
38551
38740
  this.parts[2*i] = this.parts[2*i + 1] = 0;
38552
38741
  ratios[i] = 0.0;
38553
38742
  }
38554
-
38743
+
38555
38744
  n_saved = this.new_split_chain(nsse, sratio, minSize, minSSE, maxCsz, avgCts, cDelta, ncFact, this.parts, n_saved, ratios);
38556
38745
 
38557
38746
  // save domain data
@@ -38592,14 +38781,14 @@ class Domain3d {
38592
38781
  //resflags.clear();
38593
38782
 
38594
38783
  //let resflags = [];
38595
- let resflags = {};
38784
+ let resflags = {}; // keys are 1-based positions
38596
38785
 
38597
38786
  // a domain must have at least 3 SSEs...
38598
38787
  if (prts.length <= 2) continue;
38599
38788
 
38600
38789
  for (let i = 0; i < seqLen; i++) {
38601
38790
  //resflags.push(0);
38602
- resflags[resiArray[i]] = 0;
38791
+ resflags[i + 1] = 0;
38603
38792
  }
38604
38793
 
38605
38794
  for (let i = 0; i < prts.length; i++) {
@@ -38615,17 +38804,14 @@ class Domain3d {
38615
38804
  let To = sserec.To;
38616
38805
 
38617
38806
  for (let j = From; j <= To; j++) {
38618
- //resflags[j - 1] = 1;
38619
38807
  resflags[j] = 1;
38620
38808
  }
38621
38809
 
38622
38810
  if ((k == 0) && (From > 1)) {
38623
38811
  // residues with negative residue numbers will not be included
38624
38812
  for (let j = 1; j < From; j++) {
38625
- //resflags[j - 1] = 1;
38626
38813
  // include at most 10 residues
38627
38814
  if(From - j <= 10) {
38628
- //resflags[j - 1] = 1;
38629
38815
  resflags[j] = 1;
38630
38816
  }
38631
38817
  }
@@ -38635,10 +38821,8 @@ class Domain3d {
38635
38821
  if ((k == substruct.length - 1) && (To < parseInt(lastResi))) {
38636
38822
  //for (let j = To + 1; j <= seqLen; j++) {
38637
38823
  for (let j = To + 1; j <= parseInt(lastResi); j++) {
38638
- //resflags[j - 1] = 1;
38639
38824
  // include at most 10 residues
38640
38825
  if(j - To <= 10) {
38641
- //resflags[j - 1] = 1;
38642
38826
  resflags[j] = 1;
38643
38827
  }
38644
38828
  }
@@ -38654,7 +38838,6 @@ class Domain3d {
38654
38838
 
38655
38839
  if (ll > 0) {
38656
38840
  for (let j = From - ll; j <= From - 1; j++) {
38657
- //resflags[j - 1] = 1;
38658
38841
  resflags[j] = 1;
38659
38842
  }
38660
38843
  }
@@ -38673,7 +38856,6 @@ class Domain3d {
38673
38856
 
38674
38857
  if (ll > 0) {
38675
38858
  for (let j = To + 1; j <= To + ll; j++) {
38676
- //resflags[j - 1] = 1;
38677
38859
  resflags[j] = 1;
38678
38860
  }
38679
38861
  }
@@ -38685,16 +38867,15 @@ class Domain3d {
38685
38867
  let startseg;
38686
38868
  //vector<int> segments;
38687
38869
  //segments.clear();
38688
- let segments = [];
38870
+ let segments = []; //use position instead of residue number
38689
38871
 
38690
38872
  for (let i = 0; i < seqLen; i++) {
38691
38873
  //let rf = resflags[i];
38692
- let rf = resflags[resiArray[i]];
38874
+ let rf = resflags[i + 1];
38693
38875
 
38694
38876
  if (!inseg && (rf == 1)) {
38695
38877
  // new segment starts here
38696
- //startseg = i + 1;
38697
- startseg = resiArray[i];
38878
+ startseg = i + 1;
38698
38879
  inseg = true;
38699
38880
  continue;
38700
38881
  }
@@ -38702,8 +38883,7 @@ class Domain3d {
38702
38883
  if (inseg && (rf == 0)) {
38703
38884
  // segment ends
38704
38885
  segments.push(startseg);
38705
- //segments.push(i);
38706
- segments.push(resiArray[i]);
38886
+ segments.push(i);
38707
38887
  inseg = false;
38708
38888
  }
38709
38889
  }
@@ -38711,7 +38891,6 @@ class Domain3d {
38711
38891
  // check for the last segment
38712
38892
  if (inseg) {
38713
38893
  segments.push(startseg);
38714
- //segments.push(seqLen);
38715
38894
  segments.push(lastResi);
38716
38895
  }
38717
38896
 
@@ -38732,8 +38911,8 @@ class Domain3d {
38732
38911
  }
38733
38912
  }
38734
38913
  }
38735
-
38736
- return {subdomains: subdomains, substruct: substruct};
38914
+
38915
+ return {subdomains: subdomains, substruct: substruct, pos2resi:pos2resi };
38737
38916
  } // end c2b_NewSplitChain
38738
38917
 
38739
38918
  getDomainJsonForAlign(atoms) { let ic = this.icn3d, me = ic.icn3dui;
@@ -38741,6 +38920,7 @@ class Domain3d {
38741
38920
 
38742
38921
  let subdomains = result.subdomains;
38743
38922
  let substruct = result.substruct;
38923
+ let pos2resi = result.pos2resi;
38744
38924
 
38745
38925
  let residueHash = ic.firstAtomObjCls.getResiduesFromAtoms(atoms);
38746
38926
  let residueArray = Object.keys(residueHash);
@@ -38768,8 +38948,8 @@ class Domain3d {
38768
38948
  //ss: sstype ss_start ss_end x1 y1 z1 x2 y2 z2
38769
38949
  //sstype: 1 (helix), 2 (sheet)
38770
38950
  let sstype = (substruct[k].Sheet) ? 2 : 1;
38771
- let from = substruct[k].From;
38772
- let to = substruct[k].To;
38951
+ let from = pos2resi[substruct[k].From];
38952
+ let to = pos2resi[substruct[k].To];
38773
38953
 
38774
38954
  let residFrom = chnid + "_" + from;
38775
38955
  let atomFrom = ic.firstAtomObjCls.getFirstCalphaAtomObj(ic.residues[residFrom]);
@@ -39786,7 +39966,7 @@ class AddTrack {
39786
39966
  let legendHtml = me.htmlCls.clickMenuCls.setLegendHtml();
39787
39967
 
39788
39968
  //$("#" + me.pre + "legend").html(legendHtml);
39789
- $("#" + me.pre + "dl_legend").html(legendHtml);
39969
+ $("#" + me.pre + "dl_legend_html").html(legendHtml);
39790
39970
  me.htmlCls.dialogCls.openDlg('dl_legend', 'Color range');
39791
39971
  }
39792
39972
  else if(type == 'tube') {
@@ -41631,7 +41811,7 @@ class ShowSeq {
41631
41811
  let strand2len_start_stop = {};
41632
41812
  let prevRefnumStr, prevPostfix, prevRefnum;
41633
41813
 
41634
- // sometimes one chain may have several Ig domains,set a index for each IgDomain
41814
+ // sometimes one chain may have several Ig domains,set an index for each IgDomain
41635
41815
  let index = 1, prevStrandPostfix = '', bStart = false;
41636
41816
  for(let i = 0, il = giSeq.length; i < il; ++i) {
41637
41817
  let currResi = ic.ParserUtilsCls.getResi(chnid, i);
@@ -41842,7 +42022,7 @@ class ShowSeq {
41842
42022
  }
41843
42023
  else {
41844
42024
  let refnum = parseInt(refnumStr).toString();
41845
- let color = this.getRefnumColor(currStrand);
42025
+ let color = this.getRefnumColor(currStrand, true);
41846
42026
  let colorStr = 'style="color:' + color + '"';
41847
42027
 
41848
42028
  let lastTwo = parseInt(refnum.substr(refnum.length - 2, 2));
@@ -42013,7 +42193,7 @@ class ShowSeq {
42013
42193
 
42014
42194
  getRefnumHtml(residueid, refnumStr, refnumStr_ori, refnumLabel, currStrand, bLoop, bHidelabel) { let ic = this.icn3d, me = ic.icn3dui;
42015
42195
  let refnum = parseInt(refnumStr).toString();
42016
- let color = this.getRefnumColor(currStrand);
42196
+ let color = this.getRefnumColor(currStrand, true);
42017
42197
  let colorStr = (!bLoop) ? 'style="color:' + color + '; text-decoration: underline overline;"' : 'style="color:' + color + '"';
42018
42198
 
42019
42199
  let lastTwo = parseInt(refnum.substr(refnum.length - 2, 2));
@@ -42039,45 +42219,45 @@ class ShowSeq {
42039
42219
  return html;
42040
42220
  }
42041
42221
 
42042
- getRefnumColor(currStrand) { let ic = this.icn3d, me = ic.icn3dui;
42043
- if(currStrand == "A^") { //magenta // deep sky blue
42044
- return '#FF00FF'; //'#9900ff'; //'#00BFFF';
42222
+ getRefnumColor(currStrand, bText) { let ic = this.icn3d, me = ic.icn3dui;
42223
+ if(currStrand == "A^") {
42224
+ return '#FF00FF';
42045
42225
  }
42046
- else if(currStrand == "A") { //rebecca purple // blue
42047
- return '#663399'; //'#9900ff'; //'#0000FF';
42226
+ else if(currStrand == "A") {
42227
+ return '#663399';
42048
42228
  }
42049
- else if(currStrand == "A*") { //pink // sky blue
42050
- return '#FFC0CB'; //'#9900ff'; //'#87CEEB';
42229
+ else if(currStrand == "A*") {
42230
+ return '#FFC0CB';
42051
42231
  }
42052
- else if(currStrand == "A'") { //medium purple // steel blue
42053
- return '#663399'; //'#9370db'; //'#9900ff'; //'#4682B4';
42232
+ else if(currStrand == "A'") {
42233
+ return '#663399';
42054
42234
  }
42055
- else if(currStrand == "B") { //medium orchid // cyan
42056
- return '#ba55d3'; //'#0000FF'; //'#4a86e8'; //'#00FFFF';
42235
+ else if(currStrand == "B") {
42236
+ return '#ba55d3';
42057
42237
  }
42058
- else if(currStrand == "C") { //blue // green
42059
- return '#0000FF'; //'#76d6ff'; //'#00FF00';
42238
+ else if(currStrand == "C") {
42239
+ return '#0000FF';
42060
42240
  }
42061
- else if(currStrand == "C'") { //corn blue // yellow
42062
- return '#6495ED'; //'#006400'; //'#00b050'; //'#FFFF00';
42241
+ else if(currStrand == "C'") {
42242
+ return '#6495ED';
42063
42243
  }
42064
- else if(currStrand == "C''") { //dark green // orange
42065
- return '#006400'; //'#00ff00'; //'#FFA500';
42244
+ else if(currStrand == "C''") {
42245
+ return '#006400';
42066
42246
  }
42067
- else if(currStrand == "D") { //green // brown
42068
- return '#00FF00'; //'#fffb00'; //'#A52A2A';
42247
+ else if(currStrand == "D") {
42248
+ return '#00FF00';
42069
42249
  }
42070
- else if(currStrand == "E") { //yellow // pink
42071
- return "#F7DC6F"; //'#F0E68C'; //'#ff9900'; //'#ffd966'; //'#FFC0CB';
42250
+ else if(currStrand == "E") {
42251
+ return (bText) ? "#F7DC6F" : "#FFFF00";
42072
42252
  }
42073
- else if(currStrand == "F") { //orange // magenta
42074
- return '#FFA500'; //'#FF00FF'; //'#ff9900'; //'#FF00FF';
42253
+ else if(currStrand == "F") {
42254
+ return '#FFA500';
42075
42255
  }
42076
- else if(currStrand == "G") { //red // red
42077
- return '#FF0000'; //'#ff2600'; //'#FF0000';
42256
+ else if(currStrand == "G") {
42257
+ return '#FF0000';
42078
42258
  }
42079
- else if(currStrand == "G*") { //dark red // salmon
42080
- return '#8B0000'; //'#ff2600'; //'#FA8072';
42259
+ else if(currStrand == "G*") {
42260
+ return '#8B0000';
42081
42261
  }
42082
42262
  else {
42083
42263
  return me.htmlCls.GREYB;
@@ -42092,7 +42272,7 @@ class ShowSeq {
42092
42272
  return '#006400';
42093
42273
  }
42094
42274
  else if(currStrand == "C" || currStrand == "F") {
42095
- return "#F7DC6F"; //'#F0E68C';
42275
+ return "#FFFF00"; //'#F0E68C';
42096
42276
  }
42097
42277
  else if(currStrand == "C'" || (currStrand && currStrand.substr(0, 1) == "G")) {
42098
42278
  return '#FFA500';
@@ -42676,7 +42856,7 @@ class HlUpdate {
42676
42856
  html2ddgm += ic.diagram2dCls.draw2Ddgm(ic.interactionData, ic.inputid, undefined, true);
42677
42857
  html2ddgm += ic.diagram2dCls.set2DdgmNote();
42678
42858
 
42679
- $("#" + ic.pre + "dl_2ddgm").html(html2ddgm);
42859
+ $("#" + ic.pre + "dl_2ddgm_html").html(html2ddgm);
42680
42860
  }
42681
42861
  else if(ic.mmdbidArray &&(me.cfg.align !== undefined || me.cfg.chainalign !== undefined || ic.bRealign)) {
42682
42862
  html2ddgm += ic.diagram2dCls.draw2Ddgm(ic.interactionData1, ic.mmdbidArray[0].toUpperCase(), 0, true);
@@ -42688,7 +42868,7 @@ class HlUpdate {
42688
42868
  }
42689
42869
  html2ddgm += ic.diagram2dCls.set2DdgmNote(true);
42690
42870
 
42691
- $("#" + ic.pre + "dl_2ddgm").html(html2ddgm);
42871
+ $("#" + ic.pre + "dl_2ddgm_html").html(html2ddgm);
42692
42872
  }
42693
42873
  }
42694
42874
 
@@ -43225,8 +43405,8 @@ class LineGraph {
43225
43405
  linkedNodeCnt[mappingid] = 1;
43226
43406
  linkedNodeInterDiff[mappingid] = link.n;
43227
43407
  }
43228
- else {
43229
- ++linkedNodeCnt[mappingid];
43408
+ else {
43409
+ ++linkedNodeCnt[mappingid];
43230
43410
  linkedNodeInterDiff[mappingid] -= link.n; // show difference
43231
43411
  }
43232
43412
  }
@@ -43576,9 +43756,9 @@ class LineGraph {
43576
43756
  if(pos1 === undefined || pos2 === undefined) continue;
43577
43757
  let linestrokewidth;
43578
43758
  if(link.v == me.htmlCls.contactValue) {
43579
- linestrokewidth = 1;
43759
+ linestrokewidth = (link.n == 1) ? 1 : 3;
43580
43760
  } else {
43581
- linestrokewidth = 2;
43761
+ linestrokewidth = (link.n == 1) ? 2 : 4;
43582
43762
  }
43583
43763
  let strokecolor;
43584
43764
  if(link.v == me.htmlCls.hbondValue) {
@@ -43595,8 +43775,9 @@ class LineGraph {
43595
43775
  strokecolor = "#" + me.htmlCls.contactColor;
43596
43776
  }
43597
43777
  html += "<g class='icn3d-interaction' resid1='" + resid1 + "' resid2='" + resid2 + "' >";
43598
- html += "<title>Interaction of residue " + node1.id + " with residue " + node2.id + "</title>";
43599
- html += "<line x1='" + pos1.x + "' y1='" + pos1.y + "' x2='" + pos2.x + "' y2='" + pos2.y + "' stroke='" + strokecolor + "' stroke-width='" + linestrokewidth + "' /></g>";
43778
+ let interactStr = (link.n == 1) ? 'Interaction' : link.n + ' interactions';
43779
+ if(link.n > 1) html += "<title>" + interactStr + " of residue " + node1.id + " with residue " + node2.id + "</title>";
43780
+ html += "<line x1='" + pos1.x + "' y1='" + pos1.y + "' x2='" + pos2.x + "' y2='" + pos2.y + "' stroke='" + strokecolor + "' stroke-width='" + linestrokewidth + "'/></g>";
43600
43781
  }
43601
43782
  // show nodes later
43602
43783
  html += nodeHtml;
@@ -43689,9 +43870,9 @@ class LineGraph {
43689
43870
 
43690
43871
  let linestrokewidth;
43691
43872
  if(link.v == me.htmlCls.contactValue) {
43692
- linestrokewidth = 1;
43873
+ linestrokewidth = (link.n == 1) ? 1 : 3;
43693
43874
  } else {
43694
- linestrokewidth = 2;
43875
+ linestrokewidth = (link.n == 1) ? 2 : 4;
43695
43876
  }
43696
43877
 
43697
43878
  if(bAfMap && ic.hex2skip[link.c]) ;
@@ -43706,7 +43887,8 @@ class LineGraph {
43706
43887
  }
43707
43888
  else {
43708
43889
  html += "<g class='icn3d-interaction' resid1='" + resid1 + "' resid2='" + resid2 + "' >";
43709
- html += "<title>Interaction of residue " + node1.id + " with residue " + node2.id + "</title>";
43890
+ let interactStr = (link.n == 1) ? 'Interaction' : link.n + ' interactions';
43891
+ if(link.n > 1) html += "<title>" + interactStr + " of residue " + node1.id + " with residue " + node2.id + "</title>";
43710
43892
  if(bContactMap) {
43711
43893
  html += "<rect x='" +(pos2.x - halfSize).toString() + "' y='" +(pos1.y - halfSize).toString() + "' width='" + rectSize + "' height='" + rectSize + "' fill='" + strokecolor + "' stroke-width='" + linestrokewidth + "' stroke='" + strokecolor + "' />";
43712
43894
  }
@@ -44222,11 +44404,9 @@ class GetGraph {
44222
44404
 
44223
44405
  if(!linkstr2cnt.hasOwnProperty(linkStr)) {
44224
44406
  linkstr2cnt[linkStr] = 1;
44225
- linkstr2cnt[linkStr] = 1;
44226
44407
  }
44227
44408
  else {
44228
- linkstr2cnt[linkStr] += 1;
44229
- linkstr2cnt[linkStr] += 1;
44409
+ ++linkstr2cnt[linkStr];
44230
44410
  }
44231
44411
  }
44232
44412
  }
@@ -44950,11 +45130,11 @@ class ViewInterPairs {
44950
45130
  html += result.html;
44951
45131
  bondCnt = result.bondCnt;
44952
45132
 
44953
- $("#" + ic.pre + "dl_interactionsorted").html(html);
45133
+ $("#" + ic.pre + "dl_interactionsorted_html").html(html);
44954
45134
  me.htmlCls.dialogCls.openDlg('dl_interactionsorted', 'Show sorted interactions');
44955
45135
  }
44956
45136
  else if(type == 'view') {
44957
- $("#" + ic.pre + "dl_allinteraction").html(html);
45137
+ $("#" + ic.pre + "dl_allinteraction_html").html(html);
44958
45138
  me.htmlCls.dialogCls.openDlg('dl_allinteraction', 'Show interactions');
44959
45139
  }
44960
45140
  else if(type == 'linegraph') {
@@ -47282,7 +47462,7 @@ class ChainalignParser {
47282
47462
  me.htmlCls.clickMenuCls.setLogCmd(logStr, false);
47283
47463
  let html = "<br><b>Alignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br>";
47284
47464
  if(me.cfg.aligntool == 'tmalign') html += "<b>TM-score</b>: " + align[0].score.toPrecision(4) + "<br><br>";
47285
- $("#" + ic.pre + "dl_rmsd").html(html);
47465
+ $("#" + ic.pre + "dl_rmsd_html").html(html);
47286
47466
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'RMSD of alignment');
47287
47467
 
47288
47468
  bAligned = true;
@@ -51545,10 +51725,10 @@ class ParserUtils {
51545
51725
  me.htmlCls.clickMenuCls.setLogCmd("realignment RMSD: " + rmsd.toPrecision(4), false);
51546
51726
  let html = "<br><b>Realignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>";
51547
51727
  if(ic.bAfMem) {
51548
- //if(window.dialog) window.dialog.dialog( "close" );
51728
+ //if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
51549
51729
  html += me.utilsCls.getMemDesc();
51550
51730
  }
51551
- $("#" + ic.pre + "dl_rmsd").html(html);
51731
+ $("#" + ic.pre + "dl_rmsd_html").html(html);
51552
51732
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'Realignment RMSD');
51553
51733
  }
51554
51734
 
@@ -51729,7 +51909,7 @@ class ParserUtils {
51729
51909
  ic.diagram2dCls.draw2Ddgm(ic.interactionData2, mmdbid2, 1);
51730
51910
 
51731
51911
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote(true);
51732
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
51912
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
51733
51913
 
51734
51914
  ic.b2DShown = true;
51735
51915
 
@@ -51782,7 +51962,7 @@ class ParserUtils {
51782
51962
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote(true);
51783
51963
 
51784
51964
  ic.b2DShown = true;
51785
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
51965
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
51786
51966
  if(me.cfg.show2d) me.htmlCls.dialogCls.openDlg('dl_2ddgm', 'Interactions');
51787
51967
 
51788
51968
  /// if(ic.deferredViewinteraction !== undefined) ic.deferredViewinteraction.resolve();
@@ -51800,7 +51980,7 @@ class ParserUtils {
51800
51980
  ic.diagram2dCls.draw2Ddgm(ic.interactionData, mmdbid);
51801
51981
 
51802
51982
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote();
51803
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
51983
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
51804
51984
  }
51805
51985
 
51806
51986
  ic.b2DShown = true;
@@ -51903,7 +52083,7 @@ class ParserUtils {
51903
52083
  let rmsd = ic.rmsd_supr.rmsd;
51904
52084
 
51905
52085
  me.htmlCls.clickMenuCls.setLogCmd("RMSD of alignment to OPM: " + rmsd.toPrecision(4), false);
51906
- //$("#" + ic.pre + "dl_rmsd").html("<br><b>RMSD of alignment to OPM</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
52086
+ //$("#" + ic.pre + "dl_rmsd_html").html("<br><b>RMSD of alignment to OPM</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
51907
52087
  //if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'RMSD of alignment to OPM');
51908
52088
 
51909
52089
  let dxymaxsq = 0;
@@ -52109,6 +52289,16 @@ class ParserUtils {
52109
52289
 
52110
52290
  // set defined sets before loadScript
52111
52291
  if(ic.bInitial) {
52292
+ if(me.cfg.mobilemenu) {
52293
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
52294
+ let bNoSave = true;
52295
+ me.htmlCls.clickMenuCls.applyShownMenus(bNoSave);
52296
+ }
52297
+ // else {
52298
+ // me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
52299
+ // me.htmlCls.clickMenuCls.applyShownMenus();
52300
+ // }
52301
+
52112
52302
  if(me.cfg.showsets) {
52113
52303
  ic.definedSetsCls.showSets();
52114
52304
  }
@@ -55549,7 +55739,7 @@ class Vastplus {
55549
55739
  bAligned = true;
55550
55740
 
55551
55741
  me.htmlCls.clickMenuCls.setLogCmd("realignment RMSD: " + rmsd.toPrecision(4), false);
55552
- $("#" + ic.pre + "dl_rmsd").html("<br><b>Realignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
55742
+ $("#" + ic.pre + "dl_rmsd_html").html("<br><b>Realignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
55553
55743
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'Realignment RMSD');
55554
55744
 
55555
55745
  // apply matrix for each atom
@@ -57495,7 +57685,7 @@ class ApplyCommand {
57495
57685
 
57496
57686
  let legendHtml = me.htmlCls.clickMenuCls.setLegendHtml();
57497
57687
  //$("#" + me.pre + "legend").html(legendHtml).show();
57498
- $("#" + me.pre + "dl_legend").html(legendHtml);
57688
+ $("#" + me.pre + "dl_legend_html").html(legendHtml);
57499
57689
  me.htmlCls.dialogCls.openDlg('dl_legend', 'Color Range');
57500
57690
  }
57501
57691
  }
@@ -61011,7 +61201,7 @@ class Delphi {
61011
61201
  let phidata = await this.CalcPhiPrms(gsize, salt, contour, bSurface, data);
61012
61202
 
61013
61203
  this.loadPhiData(phidata, contour, bSurface);
61014
-
61204
+
61015
61205
  ic.bAjaxPhi = true;
61016
61206
 
61017
61207
  if(bSurface) {
@@ -61775,8 +61965,8 @@ class Dssp {
61775
61965
 
61776
61966
  // align each 3D domain with reference structure
61777
61967
  let result = ic.domain3dCls.c2b_NewSplitChain(ic.chains[chainid]);
61778
- let subdomains = result.subdomains;
61779
-
61968
+ let subdomains = result.subdomains;
61969
+
61780
61970
  let domainAtomsArray = [];
61781
61971
  if(subdomains.length <= 1) {
61782
61972
  domainAtomsArray.push(ic.chains[chainid]);
@@ -61795,7 +61985,8 @@ class Dssp {
61795
61985
  let startResi = segArray[m];
61796
61986
  let endResi = segArray[m+1];
61797
61987
  for(let n = parseInt(startResi); n <= parseInt(endResi); ++n) {
61798
- let resid = chainid + '_' + n;
61988
+ let residNCBI = chainid + '_' + n;
61989
+ let resid = ic.ncbi2resid[residNCBI];
61799
61990
  domainAtoms = me.hashUtilsCls.unionHash(domainAtoms, ic.residues[resid]);
61800
61991
  ic.resid2domainid[resid] = chainid + '-' + k;
61801
61992
  }
@@ -61806,9 +61997,9 @@ class Dssp {
61806
61997
  }
61807
61998
 
61808
61999
  for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
61809
-
61810
62000
  let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
61811
62001
  let domainid = chainid + '-' + k;
62002
+
61812
62003
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
61813
62004
  let struct2 = ic.defaultPdbId + index;
61814
62005
  let pdb_query = dataArray[index].value; //[0];
@@ -62029,7 +62220,7 @@ if(!me.bNode) {
62029
62220
  else if(refnum >= 1200 && refnum < 1300) return "A'" + oriRefnum;
62030
62221
  else if(refnum >= 1300 && refnum < 1400) return "A*" + oriRefnum;
62031
62222
  else if(refnum >= 1400 && refnum < 2000) {
62032
- if(prevStrand.substr(0, 1) == 'A') {
62223
+ if(prevStrand && prevStrand.substr(0, 1) == 'A') {
62033
62224
  return prevStrand + oriRefnum;
62034
62225
  }
62035
62226
  else {
@@ -63398,7 +63589,7 @@ class Analysis {
63398
63589
  //html += '<b>Buried Surface for both Sets</b>: ' + buriedArea + ' &#8491;<sup>2</sup><br>';
63399
63590
  html += '<b>Buried Surface for Set 1</b>: ' + buriedArea2 + ' &#8491;<sup>2</sup><br>';
63400
63591
  html += '<b>Buried Surface for Set 2</b>: ' + buriedArea1 + ' &#8491;<sup>2</sup><br><br>';
63401
- $("#" + ic.pre + "dl_buriedarea").html(html);
63592
+ $("#" + ic.pre + "dl_buriedarea_html").html(html);
63402
63593
  me.htmlCls.dialogCls.openDlg('dl_buriedarea', 'Buried solvent accessible surface area in the interface');
63403
63594
  me.htmlCls.clickMenuCls.setLogCmd('buried surface ' + buriedArea, false);
63404
63595
  }
@@ -63504,7 +63695,7 @@ class Analysis {
63504
63695
 
63505
63696
  tableHtml += '</table><br><br>';
63506
63697
 
63507
- $("#" + me.pre + "dl_disttable").html(tableHtml);
63698
+ $("#" + me.pre + "dl_disttable_html").html(tableHtml);
63508
63699
  }
63509
63700
  }
63510
63701
 
@@ -64061,7 +64252,7 @@ class Diagram2d {
64061
64252
 
64062
64253
  ic.html2ddgm += html;
64063
64254
 
64064
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
64255
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
64065
64256
 
64066
64257
  return html;
64067
64258
  }
@@ -66806,6 +66997,7 @@ class ShareLink {
66806
66997
  //file (the comand history) is concatenated in the URL to show the current state.
66807
66998
  async shareLink(bPngHtml, bPngOnly) { let ic = this.icn3d, me = ic.icn3dui;
66808
66999
  let url = this.shareLinkUrl();
67000
+
66809
67001
  let bTooLong =(url.length > 4000 || url.indexOf('http') !== 0) ? true : false;
66810
67002
  if(bPngHtml) url += "&random=" + parseInt(Math.random() * 1000); // generate a new shorten URL and thus image name everytime
66811
67003
  //var inputid =(ic.inputid) ? ic.inputid : "custom";
@@ -66837,40 +67029,53 @@ class ShareLink {
66837
67029
  }
66838
67030
  }
66839
67031
 
66840
- let data = await this.getShareLinkPrms(url, bPngHtml);
66841
-
66842
67032
  let shorturl = 'Problem in getting shortened URL';
66843
- if(data.shortLink !== undefined) {
66844
- shorturl = data.shortLink;
66845
- if(bPngHtml) { // save png and corresponding html
66846
- let strArray = shorturl.split("/");
66847
- let shortName = strArray[strArray.length - 1];
66848
- ic.saveFileCls.saveFile(inputid + '-' + shortName + '.png', 'png');
66849
- let text = '<div style="float:left; border: solid 1px #0000ff; padding: 5px; margin: 10px; text-align:center;">';
66850
- text += '<a href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + shortName + '" target="_blank">';
66851
- text += '<img style="height:300px" src ="' + inputid + '-' + shortName + '.png"><br>\n';
66852
- text += '<!--Start of your comments==================-->\n';
66853
- let yournote =(ic.yournote) ? ': ' + ic.yournote.replace(/\n/g, "<br>").replace(/; /g, ", ") : '';
66854
- text += 'PDB ' + inputid.toUpperCase() + yournote + '\n';
66855
- text += '<!--End of your comments====================-->\n';
66856
- text += '</a>';
66857
- text += '</div>\n\n';
66858
- ic.saveFileCls.saveFile(inputid + '-' + shortName + '.html', 'html', text);
66859
- }
66860
- }
66861
- if(bPngHtml && data.shortLink === undefined) {
66862
- ic.saveFileCls.saveFile(inputid + '_icn3d_loadable.png', 'png');
66863
- }
66864
- //shorturl: https://icn3d.page.link/NvbAh1Vmiwc4bgX87
66865
- let urlArray = shorturl.split('page.link/');
66866
- //if(urlArray.length == 2) shorturl = me.htmlCls.baseUrl + 'icn3d/share.html?' + urlArray[1];
66867
- // When the baseURL is structure.ncbi.nlm.nih.gov, mmcifparser.cgi has a problem to past posted data in Mac/iphone
66868
- // So the base URL is still www.ncbi.nlm.nih.gov/Structure,just use short URL here
66869
- if(urlArray.length == 2) shorturl = 'https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + urlArray[1];
67033
+
67034
+ if(!me.cfg.notebook) {
67035
+ let data = await this.getShareLinkPrms(url, bPngHtml);
67036
+
67037
+ if(data.shortLink !== undefined) {
67038
+ shorturl = data.shortLink;
67039
+ if(bPngHtml) { // save png and corresponding html
67040
+ let strArray = shorturl.split("/");
67041
+ let shortName = strArray[strArray.length - 1];
67042
+ ic.saveFileCls.saveFile(inputid + '-' + shortName + '.png', 'png');
67043
+ let text = '<div style="float:left; border: solid 1px #0000ff; padding: 5px; margin: 10px; text-align:center;">';
67044
+ text += '<a href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + shortName + '" target="_blank">';
67045
+ text += '<img style="height:300px" src ="' + inputid + '-' + shortName + '.png"><br>\n';
67046
+ text += '<!--Start of your comments==================-->\n';
67047
+ let yournote =(ic.yournote) ? ': ' + ic.yournote.replace(/\n/g, "<br>").replace(/; /g, ", ") : '';
67048
+ text += 'PDB ' + inputid.toUpperCase() + yournote + '\n';
67049
+ text += '<!--End of your comments====================-->\n';
67050
+ text += '</a>';
67051
+ text += '</div>\n\n';
67052
+ ic.saveFileCls.saveFile(inputid + '-' + shortName + '.html', 'html', text);
67053
+ }
67054
+ }
67055
+
67056
+ if(bPngHtml && data.shortLink === undefined) {
67057
+ ic.saveFileCls.saveFile(inputid + '_icn3d_loadable.png', 'png');
67058
+ }
67059
+
67060
+ //shorturl: https://icn3d.page.link/NvbAh1Vmiwc4bgX87
67061
+ let urlArray = shorturl.split('page.link/');
67062
+ //if(urlArray.length == 2) shorturl = me.htmlCls.baseUrl + 'icn3d/share.html?' + urlArray[1];
67063
+ // When the baseURL is structure.ncbi.nlm.nih.gov, mmcifparser.cgi has a problem to past posted data in Mac/iphone
67064
+ // So the base URL is still www.ncbi.nlm.nih.gov/Structure,just use short URL here
67065
+ if(urlArray.length == 2) shorturl = 'https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + urlArray[1];
67066
+
67067
+ $("#" + ic.pre + "short_url").val(shorturl);
67068
+ $("#" + ic.pre + "short_url_title").val(shorturl + '&t=' + ic.yournote);
67069
+ }
67070
+
67071
+ let outputCmd = this.shareLinkUrl(undefined, true);
67072
+ let idStr = (me.cfg.url) ? "url=" + me.cfg.url : "mmdbafid=" + ic.inputid;
67073
+ let jnCmd = "view = icn3dpy.view(q='" + idStr + "',command='" + outputCmd + "')\nview";
67074
+ $("#" + ic.pre + "jn_commands").val(jnCmd);
67075
+
66870
67076
  $("#" + ic.pre + "ori_url").val(url);
66871
- $("#" + ic.pre + "short_url").val(shorturl);
66872
- $("#" + ic.pre + "short_url_title").val(shorturl + '&t=' + ic.yournote);
66873
- if(!bPngHtml) me.htmlCls.dialogCls.openDlg('dl_copyurl', 'Copy a Share Link URL');
67077
+
67078
+ if(!bPngHtml) me.htmlCls.dialogCls.openDlg('dl_copyurl', 'Copy a Share Link URL or Jupyter Notebook Commands');
66874
67079
  }
66875
67080
 
66876
67081
  getShareLinkPrms(url, bPngHtml) { let ic = this.icn3d, me = ic.icn3dui;
@@ -66899,8 +67104,9 @@ class ShareLink {
66899
67104
  });
66900
67105
  }
66901
67106
 
66902
- shareLinkUrl(bAllCommands) { let ic = this.icn3d, me = ic.icn3dui;
67107
+ shareLinkUrl(bAllCommands, bOutputCmd) { let ic = this.icn3d, me = ic.icn3dui;
66903
67108
  let url = me.htmlCls.baseUrl + "icn3d/full.html?";
67109
+ let outputCmd = '';
66904
67110
  if(me.cfg.bSidebyside) url = me.htmlCls.baseUrl + "icn3d/full2.html?";
66905
67111
 
66906
67112
  if(ic.bInputUrlfile) {
@@ -67003,8 +67209,13 @@ class ShareLink {
67003
67209
 
67004
67210
  url += 'command=';
67005
67211
 
67006
- //let start =(inparaWithoutCommand !== undefined) ? 1 : 0;
67007
- let start = 0;
67212
+ let start;
67213
+ if(me.cfg.notebook) {
67214
+ start =(inparaWithoutCommand !== undefined) ? 1 : 0;
67215
+ }
67216
+ else {
67217
+ start = 0;
67218
+ }
67008
67219
 
67009
67220
  if(bAllCommands || ic.bInputUrlfile) start = 0;
67010
67221
 
@@ -67070,17 +67281,18 @@ class ShareLink {
67070
67281
  prevCommandStr = commandStr;
67071
67282
  }
67072
67283
 
67073
- url += tmpUrl;
67074
-
67075
67284
  // last command
67076
67285
  if(prevCommandStr) {
67077
- if(tmpUrl) url += '; ';
67078
- if(cntToggle > 0 && cntToggle %2 == 0 && prevCommandStr !== toggleStr) url += toggleStr + '; ';
67286
+ if(tmpUrl) tmpUrl += '; ';
67287
+ if(cntToggle > 0 && cntToggle %2 == 0 && prevCommandStr !== toggleStr) tmpUrl += toggleStr + '; ';
67079
67288
 
67080
- url += prevCommandStr + '|||' + ic.transformCls.getTransformationStr(transformation);
67289
+ tmpUrl += prevCommandStr + '|||' + ic.transformCls.getTransformationStr(transformation);
67081
67290
  statefile += prevCommandStr + '|||' + ic.transformCls.getTransformationStr(transformation) + '\n';
67082
67291
  }
67083
67292
 
67293
+ url += tmpUrl;
67294
+ outputCmd = tmpUrl;
67295
+
67084
67296
  statefile = statefile.replace(/!/g, Object.keys(ic.structures)[0] + '_');
67085
67297
  if((ic.bInputfile && !ic.bInputUrlfile) || (ic.bInputUrlfile && ic.bAppend) || url.length > 4000) url = statefile;
67086
67298
  let id;
@@ -67093,7 +67305,7 @@ class ShareLink {
67093
67305
  url = url.replace(new RegExp('blast_rep_id=!','g'), 'blast_rep_id=' + id + '_');
67094
67306
  }
67095
67307
 
67096
- return url;
67308
+ return (bOutputCmd) ? outputCmd : url;
67097
67309
  }
67098
67310
 
67099
67311
  getPngText() { let ic = this.icn3d; ic.icn3dui;
@@ -69946,7 +70158,7 @@ class iCn3DUI {
69946
70158
  //even when multiple iCn3D viewers are shown together.
69947
70159
  this.pre = this.cfg.divid + "_";
69948
70160
 
69949
- this.REVISION = '3.23.2';
70161
+ this.REVISION = '3.24.0';
69950
70162
 
69951
70163
  // In nodejs, iCn3D defines "window = {navigator: {}}"
69952
70164
  this.bNode = (Object.keys(window).length < 2) ? true : false;
@@ -70337,7 +70549,7 @@ iCn3DUI.prototype.show3DStructure = async function(pdbStr) { let me = this;
70337
70549
 
70338
70550
  ic.loadCmd = 'load alignment ' + me.cfg.align + ' | parameters ' + me.cfg.inpara;
70339
70551
  me.htmlCls.clickMenuCls.setLogCmd(ic.loadCmd, true);
70340
- if(me.cfg.inpara.indexOf('atype=2') == -1) {
70552
+ if(me.cfg.inpara && me.cfg.inpara.indexOf('atype=2') == -1) {
70341
70553
  await ic.alignParserCls.downloadAlignment(me.cfg.align);
70342
70554
  }
70343
70555
  else {