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.module.js CHANGED
@@ -5269,10 +5269,10 @@ class ParasCls {
5269
5269
  ];
5270
5270
 
5271
5271
  this.backgroundColors = {
5272
- black: this.thr(0x000000),
5273
- grey: this.thr(0xCCCCCC),
5274
- white: this.thr(0xFFFFFF),
5275
- transparent: this.thr(0xFFFFFF) //this.thr(0x000000)
5272
+ 'black': this.thr(0x000000),
5273
+ 'grey': this.thr(0xCCCCCC),
5274
+ 'white': this.thr(0xFFFFFF),
5275
+ 'transparent': this.thr(0xFFFFFF) //this.thr(0x000000)
5276
5276
  };
5277
5277
 
5278
5278
  this.residueColors = {
@@ -6586,7 +6586,7 @@ class ClickMenu {
6586
6586
  if(!bOneset) $("#" + me.pre + id2).resizable();
6587
6587
  }
6588
6588
 
6589
- applyShownMenus() { let me = this.icn3dui; me.icn3d;
6589
+ applyShownMenus(bNoSave) { let me = this.icn3dui; me.icn3d;
6590
6590
  let idArray = [];
6591
6591
  for(let id in me.htmlCls.allMenus) {
6592
6592
  if(me.htmlCls.shownMenus.hasOwnProperty(id)) {
@@ -6606,7 +6606,7 @@ class ClickMenu {
6606
6606
  }
6607
6607
 
6608
6608
  // save to localStorage
6609
- if(localStorage) localStorage.setItem('hiddenmenus', JSON.stringify(idArray));
6609
+ if(localStorage && !bNoSave) localStorage.setItem('hiddenmenus', JSON.stringify(idArray));
6610
6610
  }
6611
6611
 
6612
6612
  getHiddenMenusFromCache() { let me = this.icn3dui; me.icn3d;
@@ -6686,96 +6686,96 @@ class ClickMenu {
6686
6686
  let thisClass = this;
6687
6687
  //mn 1
6688
6688
  // clkMn1_mmtfid: function() {
6689
- me.myEventCls.onIds("#" + me.pre + "mn1_vastplus", "click", function(e) { me.icn3d; //e.preventDefault();
6689
+ me.myEventCls.onIds("#" + me.pre + "mn1_vastplus", "click", function(e) { me.icn3d; e.preventDefault();
6690
6690
  me.htmlCls.dialogCls.openDlg('dl_vastplus', 'Please input PDB ID for VAST+');
6691
6691
  });
6692
6692
 
6693
- me.myEventCls.onIds("#" + me.pre + "mn1_vast", "click", function(e) { me.icn3d; //e.preventDefault();
6693
+ me.myEventCls.onIds("#" + me.pre + "mn1_vast", "click", function(e) { me.icn3d; e.preventDefault();
6694
6694
  me.htmlCls.dialogCls.openDlg('dl_vast', 'Please input chain or PDB file for VAST');
6695
6695
  });
6696
6696
 
6697
- me.myEventCls.onIds("#" + me.pre + "mn1_foldseek", "click", function(e) { me.icn3d; //e.preventDefault();
6697
+ me.myEventCls.onIds("#" + me.pre + "mn1_foldseek", "click", function(e) { me.icn3d; e.preventDefault();
6698
6698
  me.htmlCls.dialogCls.openDlg('dl_foldseek', 'Submit your selection to Foldseek');
6699
6699
  });
6700
6700
 
6701
- me.myEventCls.onIds("#" + me.pre + "mn1_mmtfid", "click", function(e) { me.icn3d; //e.preventDefault();
6701
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmtfid", "click", function(e) { me.icn3d; e.preventDefault();
6702
6702
  me.htmlCls.dialogCls.openDlg('dl_mmtfid', 'Please input MMTF ID');
6703
6703
  });
6704
6704
 
6705
6705
  // clkMn1_pdbid: function() {
6706
- me.myEventCls.onIds("#" + me.pre + "mn1_pdbid", "click", function(e) { me.icn3d; //e.preventDefault();
6706
+ me.myEventCls.onIds("#" + me.pre + "mn1_pdbid", "click", function(e) { me.icn3d; e.preventDefault();
6707
6707
  me.htmlCls.dialogCls.openDlg('dl_pdbid', 'Please input PDB ID');
6708
6708
  });
6709
6709
 
6710
- me.myEventCls.onIds("#" + me.pre + "mn1_afid", "click", function(e) { me.icn3d; //e.preventDefault();
6710
+ me.myEventCls.onIds("#" + me.pre + "mn1_afid", "click", function(e) { me.icn3d; e.preventDefault();
6711
6711
  me.htmlCls.dialogCls.openDlg('dl_afid', 'Please input AlphaFold UniProt ID');
6712
6712
  });
6713
6713
 
6714
- me.myEventCls.onIds("#" + me.pre + "mn1_refseqid", "click", function(e) { me.icn3d; //e.preventDefault();
6714
+ me.myEventCls.onIds("#" + me.pre + "mn1_refseqid", "click", function(e) { me.icn3d; e.preventDefault();
6715
6715
  me.htmlCls.dialogCls.openDlg('dl_refseqid', 'Please input NCBI Protein Accession');
6716
6716
  });
6717
6717
 
6718
- me.myEventCls.onIds("#" + me.pre + "mn1_opmid", "click", function(e) { me.icn3d; //e.preventDefault();
6718
+ me.myEventCls.onIds("#" + me.pre + "mn1_opmid", "click", function(e) { me.icn3d; e.preventDefault();
6719
6719
  me.htmlCls.dialogCls.openDlg('dl_opmid', 'Please input OPM PDB ID');
6720
6720
  });
6721
6721
 
6722
- me.myEventCls.onIds("#" + me.pre + "mn1_align", "click", function(e) { me.icn3d; //e.preventDefault();
6722
+ me.myEventCls.onIds("#" + me.pre + "mn1_align", "click", function(e) { me.icn3d; e.preventDefault();
6723
6723
  me.htmlCls.dialogCls.openDlg('dl_align', 'Align two PDB structures');
6724
6724
  });
6725
6725
 
6726
- me.myEventCls.onIds("#" + me.pre + "mn1_alignaf", "click", function(e) { me.icn3d; //e.preventDefault();
6726
+ me.myEventCls.onIds("#" + me.pre + "mn1_alignaf", "click", function(e) { me.icn3d; e.preventDefault();
6727
6727
  me.htmlCls.dialogCls.openDlg('dl_alignaf', 'Align two AlphaFold structures');
6728
6728
  });
6729
6729
 
6730
- me.myEventCls.onIds("#" + me.pre + "mn1_chainalign", "click", function(e) { me.icn3d; //e.preventDefault();
6730
+ me.myEventCls.onIds("#" + me.pre + "mn1_chainalign", "click", function(e) { me.icn3d; e.preventDefault();
6731
6731
  me.htmlCls.dialogCls.openDlg('dl_chainalign', 'Align multiple chains by structure alignment');
6732
6732
  });
6733
6733
 
6734
- me.myEventCls.onIds("#" + me.pre + "mn1_chainalign2", "click", function(e) { me.icn3d; //e.preventDefault();
6734
+ me.myEventCls.onIds("#" + me.pre + "mn1_chainalign2", "click", function(e) { me.icn3d; e.preventDefault();
6735
6735
  me.htmlCls.dialogCls.openDlg('dl_chainalign2', 'Align multiple chains by sequence alignment');
6736
6736
  });
6737
6737
 
6738
- me.myEventCls.onIds("#" + me.pre + "mn1_chainalign3", "click", function(e) { me.icn3d; //e.preventDefault();
6738
+ me.myEventCls.onIds("#" + me.pre + "mn1_chainalign3", "click", function(e) { me.icn3d; e.preventDefault();
6739
6739
  me.htmlCls.dialogCls.openDlg('dl_chainalign3', 'Align multiple chains residue by residue');
6740
6740
  });
6741
6741
 
6742
- me.myEventCls.onIds("#" + me.pre + "mn1_mutation", "click", function(e) { me.icn3d; //e.preventDefault();
6742
+ me.myEventCls.onIds("#" + me.pre + "mn1_mutation", "click", function(e) { me.icn3d; e.preventDefault();
6743
6743
  me.htmlCls.dialogCls.openDlg('dl_mutation', 'Show the mutations in 3D');
6744
6744
  });
6745
6745
 
6746
- me.myEventCls.onIds("#" + me.pre + "mn1_pdbfile", "click", function(e) { me.icn3d; //e.preventDefault();
6746
+ me.myEventCls.onIds("#" + me.pre + "mn1_pdbfile", "click", function(e) { me.icn3d; e.preventDefault();
6747
6747
  //me = me.setIcn3dui($(this).attr('id'));
6748
6748
  me.htmlCls.dialogCls.openDlg('dl_pdbfile', 'Please input PDB File');
6749
6749
  });
6750
- me.myEventCls.onIds(["#" + me.pre + "mn1_pdbfile_app", "#" + me.pre + "tool_pdbfile"], "click", function(e) { me.icn3d; //e.preventDefault();
6750
+ me.myEventCls.onIds(["#" + me.pre + "mn1_pdbfile_app", "#" + me.pre + "tool_pdbfile"], "click", function(e) { me.icn3d; e.preventDefault();
6751
6751
  //me = me.setIcn3dui($(this).attr('id'));
6752
6752
  me.htmlCls.dialogCls.openDlg('dl_pdbfile_app', 'Please append PDB Files');
6753
6753
  });
6754
6754
 
6755
- me.myEventCls.onIds("#" + me.pre + "mn1_mol2file", "click", function(e) { me.icn3d; //e.preventDefault();
6755
+ me.myEventCls.onIds("#" + me.pre + "mn1_mol2file", "click", function(e) { me.icn3d; e.preventDefault();
6756
6756
  me.htmlCls.dialogCls.openDlg('dl_mol2file', 'Please input Mol2 File');
6757
6757
  });
6758
6758
 
6759
- me.myEventCls.onIds("#" + me.pre + "mn1_sdffile", "click", function(e) { me.icn3d; //e.preventDefault();
6759
+ me.myEventCls.onIds("#" + me.pre + "mn1_sdffile", "click", function(e) { me.icn3d; e.preventDefault();
6760
6760
  me.htmlCls.dialogCls.openDlg('dl_sdffile', 'Please input SDF File');
6761
6761
  });
6762
6762
 
6763
- me.myEventCls.onIds("#" + me.pre + "mn1_xyzfile", "click", function(e) { me.icn3d; //e.preventDefault();
6763
+ me.myEventCls.onIds("#" + me.pre + "mn1_xyzfile", "click", function(e) { me.icn3d; e.preventDefault();
6764
6764
  me.htmlCls.dialogCls.openDlg('dl_xyzfile', 'Please input XYZ File');
6765
6765
  });
6766
6766
 
6767
- me.myEventCls.onIds("#" + me.pre + "mn1_afmapfile", "click", function(e) { me.icn3d; //e.preventDefault();
6767
+ me.myEventCls.onIds("#" + me.pre + "mn1_afmapfile", "click", function(e) { me.icn3d; e.preventDefault();
6768
6768
  me.htmlCls.dialogCls.openDlg('dl_afmapfile', 'Please input AlphaFold PAE File');
6769
6769
  });
6770
6770
 
6771
- me.myEventCls.onIds("#" + me.pre + "mn1_urlfile", "click", function(e) { me.icn3d; //e.preventDefault();
6771
+ me.myEventCls.onIds("#" + me.pre + "mn1_urlfile", "click", function(e) { me.icn3d; e.preventDefault();
6772
6772
  me.htmlCls.dialogCls.openDlg('dl_urlfile', 'Load data by URL');
6773
6773
  });
6774
6774
 
6775
- me.myEventCls.onIds("#" + me.pre + "mn1_fixedversion", "click", function(e) { me.icn3d; //e.preventDefault();
6775
+ me.myEventCls.onIds("#" + me.pre + "mn1_fixedversion", "click", function(e) { me.icn3d; e.preventDefault();
6776
6776
  me.htmlCls.dialogCls.openDlg('dl_fixedversion', 'Open Share Link URL in the archived version of iCn3D');
6777
6777
  });
6778
- me.myEventCls.onIds("#" + me.pre + "reload_fixedversion", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6778
+ me.myEventCls.onIds("#" + me.pre + "reload_fixedversion", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6779
6779
  let url = $("#" + me.pre + "sharelinkurl").val();
6780
6780
  thisClass.setLogCmd("open " + url, false);
6781
6781
  localStorage.setItem('fixedversion', '1');
@@ -6783,65 +6783,65 @@ class ClickMenu {
6783
6783
  window.open(url, urlTarget);
6784
6784
  });
6785
6785
 
6786
- me.myEventCls.onIds("#" + me.pre + "mn1_mmciffile", "click", function(e) { me.icn3d; //e.preventDefault();
6786
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmciffile", "click", function(e) { me.icn3d; e.preventDefault();
6787
6787
  me.htmlCls.dialogCls.openDlg('dl_mmciffile', 'Please input mmCIF File');
6788
6788
  });
6789
6789
 
6790
- me.myEventCls.onIds("#" + me.pre + "mn1_mmcifid", "click", function(e) { me.icn3d; //e.preventDefault();
6790
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmcifid", "click", function(e) { me.icn3d; e.preventDefault();
6791
6791
  me.htmlCls.dialogCls.openDlg('dl_mmcifid', 'Please input mmCIF ID');
6792
6792
  });
6793
6793
 
6794
- me.myEventCls.onIds("#" + me.pre + "mn1_mmdbid", "click", function(e) { me.icn3d; //e.preventDefault();
6794
+ me.myEventCls.onIds("#" + me.pre + "mn1_mmdbid", "click", function(e) { me.icn3d; e.preventDefault();
6795
6795
  me.htmlCls.dialogCls.openDlg('dl_mmdbid', 'Please input MMDB or PDB ID');
6796
6796
  });
6797
6797
 
6798
- me.myEventCls.onIds(["#" + me.pre + "mn1_mmdbafid", , "#" + me.pre + "tool_mmdbafid"], "click", function(e) { me.icn3d; //e.preventDefault();
6798
+ me.myEventCls.onIds(["#" + me.pre + "mn1_mmdbafid", , "#" + me.pre + "tool_mmdbafid"], "click", function(e) { me.icn3d; e.preventDefault();
6799
6799
  me.htmlCls.dialogCls.openDlg('dl_mmdbafid', 'Please input PDB/MMDB/AlphaFold UniProt IDs');
6800
6800
  });
6801
6801
 
6802
- me.myEventCls.onIds("#" + me.pre + "mn1_blast_rep_id", "click", function(e) { me.icn3d; //e.preventDefault();
6802
+ me.myEventCls.onIds("#" + me.pre + "mn1_blast_rep_id", "click", function(e) { me.icn3d; e.preventDefault();
6803
6803
  me.htmlCls.dialogCls.openDlg('dl_blast_rep_id', 'Align sequence to structure');
6804
6804
  });
6805
6805
 
6806
- me.myEventCls.onIds("#" + me.pre + "mn1_gi", "click", function(e) { me.icn3d; //e.preventDefault();
6806
+ me.myEventCls.onIds("#" + me.pre + "mn1_gi", "click", function(e) { me.icn3d; e.preventDefault();
6807
6807
  me.htmlCls.dialogCls.openDlg('dl_gi', 'Please input protein gi');
6808
6808
  });
6809
6809
 
6810
- me.myEventCls.onIds("#" + me.pre + "mn1_cid", "click", function(e) { me.icn3d; //e.preventDefault();
6810
+ me.myEventCls.onIds("#" + me.pre + "mn1_cid", "click", function(e) { me.icn3d; e.preventDefault();
6811
6811
  me.htmlCls.dialogCls.openDlg('dl_cid', 'Please input PubChem CID');
6812
6812
  });
6813
6813
 
6814
- me.myEventCls.onIds("#" + me.pre + "mn1_pngimage", "click", function(e) { me.icn3d; //e.preventDefault();
6814
+ me.myEventCls.onIds("#" + me.pre + "mn1_pngimage", "click", function(e) { me.icn3d; e.preventDefault();
6815
6815
  me.htmlCls.dialogCls.openDlg('dl_pngimage', 'Please input the PNG image');
6816
6816
  });
6817
6817
 
6818
- me.myEventCls.onIds("#" + me.pre + "mn1_state", "click", function(e) { me.icn3d; //e.preventDefault();
6818
+ me.myEventCls.onIds("#" + me.pre + "mn1_state", "click", function(e) { me.icn3d; e.preventDefault();
6819
6819
  me.htmlCls.dialogCls.openDlg('dl_state', 'Please input the state file');
6820
6820
  });
6821
6821
 
6822
- me.myEventCls.onIds("#" + me.pre + "mn1_selection", "click", function(e) { me.icn3d; //e.preventDefault();
6822
+ me.myEventCls.onIds("#" + me.pre + "mn1_selection", "click", function(e) { me.icn3d; e.preventDefault();
6823
6823
  me.htmlCls.dialogCls.openDlg('dl_selection', 'Please input the selection file');
6824
6824
  });
6825
6825
 
6826
- me.myEventCls.onIds("#" + me.pre + "mn1_dsn6", "click", function(e) { me.icn3d; //e.preventDefault();
6826
+ me.myEventCls.onIds("#" + me.pre + "mn1_dsn6", "click", function(e) { me.icn3d; e.preventDefault();
6827
6827
  me.htmlCls.dialogCls.openDlg('dl_dsn6', 'Please input the DSN6 file to display electron density map');
6828
6828
  });
6829
6829
 
6830
6830
 
6831
- me.myEventCls.onIds(["#" + me.pre + "mn1_delphi", "#" + me.pre + "mn1_delphi2", "#" + me.pre + "tool_delphi"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6831
+ me.myEventCls.onIds(["#" + me.pre + "mn1_delphi", "#" + me.pre + "mn1_delphi2", "#" + me.pre + "tool_delphi"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6832
6832
  ic.loadPhiFrom = 'delphi';
6833
6833
  $("#" + me.pre + "dl_delphi_tabs").tabs();
6834
6834
  me.htmlCls.dialogCls.openDlg('dl_delphi', 'Please set parameters to display DelPhi potential map');
6835
6835
  });
6836
6836
 
6837
- me.myEventCls.onIds("#" + me.pre + "mn1_phi", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6837
+ me.myEventCls.onIds("#" + me.pre + "mn1_phi", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6838
6838
  ic.loadPhiFrom = 'phi';
6839
6839
  $("#" + me.pre + "dl_phi_tabs").tabs();
6840
6840
  $("#" + me.pre + "phitab1_tabs").tabs();
6841
6841
  $("#" + me.pre + "phitab2_tabs").tabs();
6842
6842
  me.htmlCls.dialogCls.openDlg('dl_phi', 'Please input local phi or cube file to display DelPhi potential map');
6843
6843
  });
6844
- me.myEventCls.onIds("#" + me.pre + "mn1_phiurl", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6844
+ me.myEventCls.onIds("#" + me.pre + "mn1_phiurl", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6845
6845
  ic.loadPhiFrom = 'phiurl';
6846
6846
  $("#" + me.pre + "dl_phiurl_tabs").tabs();
6847
6847
  $("#" + me.pre + "phiurltab1_tabs").tabs();
@@ -6850,11 +6850,11 @@ class ClickMenu {
6850
6850
  });
6851
6851
 
6852
6852
 
6853
- me.myEventCls.onIds("#" + me.pre + "mn1_dsn6url", "click", function(e) { me.icn3d; //e.preventDefault();
6853
+ me.myEventCls.onIds("#" + me.pre + "mn1_dsn6url", "click", function(e) { me.icn3d; e.preventDefault();
6854
6854
  me.htmlCls.dialogCls.openDlg('dl_dsn6url', 'Please input the DSN6 file to display electron density map');
6855
6855
  });
6856
6856
 
6857
- me.myEventCls.onIds("#" + me.pre + "mn1_exportState", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6857
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportState", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6858
6858
  thisClass.setLogCmd("export state file", false);
6859
6859
  let file_pref =(ic.inputid) ? ic.inputid : "custom";
6860
6860
 
@@ -6862,19 +6862,19 @@ class ClickMenu {
6862
6862
  });
6863
6863
 
6864
6864
 
6865
- me.myEventCls.onIds("#" + me.pre + "mn1_exportPdbRes", "click", function(e) { me.icn3d; //e.preventDefault();
6865
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportPdbRes", "click", function(e) { me.icn3d; e.preventDefault();
6866
6866
  me.htmlCls.setHtmlCls.exportPdb();
6867
6867
 
6868
6868
  thisClass.setLogCmd("export pdb", true);
6869
6869
  });
6870
6870
 
6871
- me.myEventCls.onIds("#" + me.pre + "mn1_exportSecondary", "click", function(e) { me.icn3d; //e.preventDefault();
6871
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportSecondary", "click", function(e) { me.icn3d; e.preventDefault();
6872
6872
  me.htmlCls.setHtmlCls.exportSecondary();
6873
6873
 
6874
6874
  thisClass.setLogCmd("export secondary structure", true);
6875
6875
  });
6876
6876
 
6877
- me.myEventCls.onIds(["#" + me.pre + "delphipdb", "#" + me.pre + "phipdb"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6877
+ me.myEventCls.onIds(["#" + me.pre + "delphipdb", "#" + me.pre + "phipdb"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
6878
6878
  let pdbStr = ic.saveFileCls.getSelectedResiduePDB();
6879
6879
 
6880
6880
  thisClass.setLogCmd("export PDB of selected residues", false);
@@ -6882,42 +6882,42 @@ class ClickMenu {
6882
6882
  ic.saveFileCls.saveFile(file_pref + '_icn3d_residues.pdb', 'text', [pdbStr]);
6883
6883
  });
6884
6884
 
6885
- me.myEventCls.onIds(["#" + me.pre + "delphipqr", "#" + me.pre + "phipqr", "#" + me.pre + "phiurlpqr"], "click", async function(e) { me.icn3d; //e.preventDefault();
6885
+ me.myEventCls.onIds(["#" + me.pre + "delphipqr", "#" + me.pre + "phipqr", "#" + me.pre + "phiurlpqr"], "click", async function(e) { me.icn3d; e.preventDefault();
6886
6886
  await me.htmlCls.setHtmlCls.exportPqr();
6887
6887
  thisClass.setLogCmd("export pqr", true);
6888
6888
  });
6889
6889
 
6890
- // me.myEventCls.onIds("#" + me.pre + "delphipqbh", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6890
+ // me.myEventCls.onIds("#" + me.pre + "delphipqbh", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6891
6891
  // let bPdb = true;
6892
6892
  // await me.htmlCls.setHtmlCls.exportPqr(bPdb);
6893
6893
  // thisClass.setLogCmd("export pdbh", false);
6894
6894
  // });
6895
6895
 
6896
- me.myEventCls.onIds("#" + me.pre + "profixpdb", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6896
+ me.myEventCls.onIds("#" + me.pre + "profixpdb", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6897
6897
  let bHydrogen = false;
6898
6898
  await ic.scapCls.exportPdbProfix(bHydrogen);
6899
6899
  thisClass.setLogCmd("export pdb missing atoms", true);
6900
6900
  });
6901
6901
 
6902
- me.myEventCls.onIds("#" + me.pre + "profixpdbh", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6902
+ me.myEventCls.onIds("#" + me.pre + "profixpdbh", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6903
6903
  let bHydrogen = true;
6904
6904
  await ic.scapCls.exportPdbProfix(bHydrogen);
6905
6905
  thisClass.setLogCmd("export pdb hydrogen", true);
6906
6906
  });
6907
6907
 
6908
- me.myEventCls.onIds("#" + me.pre + "mn1_exportStl", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6908
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportStl", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6909
6909
  thisClass.setLogCmd("export stl file", false);
6910
6910
  //ic.threeDPrintCls.hideStabilizer();
6911
6911
  ic.export3DCls.exportStlFile('');
6912
6912
  });
6913
6913
 
6914
- me.myEventCls.onIds("#" + me.pre + "mn1_exportVrml", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6914
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportVrml", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6915
6915
  thisClass.setLogCmd("export vrml file", false);
6916
6916
  //ic.threeDPrintCls.hideStabilizer();
6917
6917
  ic.export3DCls.exportVrmlFile('');
6918
6918
  });
6919
6919
 
6920
- me.myEventCls.onIds("#" + me.pre + "mn1_exportStlStab", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6920
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportStlStab", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6921
6921
  thisClass.setLogCmd("export stl stabilizer file", false);
6922
6922
  //ic.bRender = false;
6923
6923
  ic.threeDPrintCls.hideStabilizer();
@@ -6926,7 +6926,7 @@ class ClickMenu {
6926
6926
  ic.export3DCls.exportStlFile('_stab');
6927
6927
  });
6928
6928
 
6929
- me.myEventCls.onIds("#" + me.pre + "mn1_exportVrmlStab", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6929
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportVrmlStab", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6930
6930
  thisClass.setLogCmd("export vrml stabilizer file", false);
6931
6931
  //ic.bRender = false;
6932
6932
  ic.threeDPrintCls.hideStabilizer();
@@ -6935,13 +6935,13 @@ class ClickMenu {
6935
6935
  ic.export3DCls.exportVrmlFile('_stab');
6936
6936
  });
6937
6937
 
6938
- me.myEventCls.onIds("#" + me.pre + "mn6_exportInteraction", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6938
+ me.myEventCls.onIds("#" + me.pre + "mn6_exportInteraction", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6939
6939
  thisClass.setLogCmd("export interactions", false);
6940
6940
  if(me.cfg.mmdbid !== undefined) await ic.viewInterPairsCls.retrieveInteractionData();
6941
6941
  ic.viewInterPairsCls.exportInteractions();
6942
6942
  });
6943
6943
 
6944
- me.myEventCls.onIds(["#" + me.pre + "mn1_exportCanvas", "#" + me.pre + "saveimage"], "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6944
+ me.myEventCls.onIds(["#" + me.pre + "mn1_exportCanvas", "#" + me.pre + "saveimage"], "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6945
6945
  // do not record the export command
6946
6946
  //thisClass.setLogCmd("export canvas", true);
6947
6947
  thisClass.setLogCmd("export canvas", false);
@@ -6950,28 +6950,28 @@ class ClickMenu {
6950
6950
  let bPngHtml = true;
6951
6951
  await ic.shareLinkCls.shareLink(bPngHtml);
6952
6952
  });
6953
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas1", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6953
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas1", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6954
6954
  thisClass.setLogCmd("export canvas 1", true);
6955
6955
  ic.scaleFactor = 1;
6956
6956
  await ic.shareLinkCls.shareLink(true, true);
6957
6957
  });
6958
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas2", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6958
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas2", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6959
6959
  thisClass.setLogCmd("export canvas 2", true);
6960
6960
  ic.scaleFactor = 2;
6961
6961
  await ic.shareLinkCls.shareLink(true, true);
6962
6962
  });
6963
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas4", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6963
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas4", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6964
6964
  thisClass.setLogCmd("export canvas 4", true);
6965
6965
  ic.scaleFactor = 4;
6966
6966
  await ic.shareLinkCls.shareLink(true, true);
6967
6967
  });
6968
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas8", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
6968
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCanvas8", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
6969
6969
  thisClass.setLogCmd("export canvas 8", true);
6970
6970
  ic.scaleFactor = 8;
6971
6971
  await ic.shareLinkCls.shareLink(true, true);
6972
6972
  });
6973
6973
 
6974
- me.myEventCls.onIds("#" + me.pre + "mn1_exportCounts", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
6974
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportCounts", "click", function(e) { let ic = me.icn3d; e.preventDefault();
6975
6975
  thisClass.setLogCmd("export counts", false);
6976
6976
  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>';
6977
6977
  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>';
@@ -6998,7 +6998,7 @@ class ClickMenu {
6998
6998
  ic.saveFileCls.saveFile(file_pref + '_counts.html', 'html', text);
6999
6999
  });
7000
7000
 
7001
- me.myEventCls.onIds("#" + me.pre + "mn1_exportSelections", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7001
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportSelections", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7002
7002
  thisClass.setLogCmd("export all selections", false);
7003
7003
 
7004
7004
  thisClass.SetChainsAdvancedMenu();
@@ -7008,7 +7008,7 @@ class ClickMenu {
7008
7008
  ic.saveFileCls.saveFile(file_pref + '_selections.txt', 'text', [text]);
7009
7009
  });
7010
7010
 
7011
- me.myEventCls.onIds("#" + me.pre + "mn1_exportSelDetails", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7011
+ me.myEventCls.onIds("#" + me.pre + "mn1_exportSelDetails", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7012
7012
  thisClass.setLogCmd("export all selections with details", false);
7013
7013
 
7014
7014
  thisClass.SetChainsAdvancedMenu();
@@ -7019,32 +7019,32 @@ class ClickMenu {
7019
7019
  ic.saveFileCls.saveFile(file_pref + '_sel_details.txt', 'text', [text]);
7020
7020
  });
7021
7021
 
7022
- me.myEventCls.onIds(["#" + me.pre + "mn1_sharelink", "#" + me.pre + "tool_sharelink"], "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7022
+ me.myEventCls.onIds(["#" + me.pre + "mn1_sharelink", "#" + me.pre + "tool_sharelink"], "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7023
7023
  await ic.shareLinkCls.shareLink();
7024
7024
  });
7025
7025
 
7026
- me.myEventCls.onIds("#" + me.pre + "mn1_replayon", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7026
+ me.myEventCls.onIds("#" + me.pre + "mn1_replayon", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7027
7027
  await ic.resizeCanvasCls.replayon();
7028
7028
  thisClass.setLogCmd("replay on", true);
7029
7029
  });
7030
- me.myEventCls.onIds("#" + me.pre + "mn1_replayoff", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7030
+ me.myEventCls.onIds("#" + me.pre + "mn1_replayoff", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7031
7031
  await ic.resizeCanvasCls.replayoff();
7032
7032
  thisClass.setLogCmd("replay off", true);
7033
7033
  });
7034
7034
 
7035
- me.myEventCls.onIds("#" + me.pre + "mn1_menuall", "click", function(e) { me.icn3d; //e.preventDefault();
7035
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuall", "click", function(e) { me.icn3d; e.preventDefault();
7036
7036
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
7037
7037
 
7038
7038
  thisClass.applyShownMenus();
7039
7039
  });
7040
7040
 
7041
- me.myEventCls.onIds("#" + me.pre + "mn1_menusimple", "click", function(e) { me.icn3d; //e.preventDefault();
7041
+ me.myEventCls.onIds("#" + me.pre + "mn1_menusimple", "click", function(e) { me.icn3d; e.preventDefault();
7042
7042
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
7043
7043
 
7044
7044
  thisClass.applyShownMenus();
7045
7045
  });
7046
7046
 
7047
- me.myEventCls.onIds("#" + me.pre + "mn1_menupref", "click", function(e) { me.icn3d; //e.preventDefault();
7047
+ me.myEventCls.onIds("#" + me.pre + "mn1_menupref", "click", function(e) { me.icn3d; e.preventDefault();
7048
7048
  me.htmlCls.dialogCls.openDlg('dl_menupref', 'Select Menus');
7049
7049
 
7050
7050
  thisClass.getHiddenMenusFromCache();
@@ -7052,7 +7052,7 @@ class ClickMenu {
7052
7052
  thisClass.displayShownMenus();
7053
7053
  });
7054
7054
 
7055
- me.myEventCls.onIds(["#" + me.pre + "apply_menupref", "#" + me.pre + "apply_menupref2"], "click", function(e) { me.icn3d; //e.preventDefault();
7055
+ me.myEventCls.onIds(["#" + me.pre + "apply_menupref", "#" + me.pre + "apply_menupref2"], "click", function(e) { me.icn3d; e.preventDefault();
7056
7056
  var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
7057
7057
  me.htmlCls.shownMenus = {};
7058
7058
  for (var checkbox of checkboxes) {
@@ -7062,21 +7062,21 @@ class ClickMenu {
7062
7062
  thisClass.applyShownMenus();
7063
7063
  });
7064
7064
 
7065
- me.myEventCls.onIds(["#" + me.pre + "reset_menupref", "#" + me.pre + "reset_menupref2"], "click", function(e) { me.icn3d; //e.preventDefault();
7065
+ me.myEventCls.onIds(["#" + me.pre + "reset_menupref", "#" + me.pre + "reset_menupref2"], "click", function(e) { me.icn3d; e.preventDefault();
7066
7066
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
7067
7067
 
7068
7068
  thisClass.applyShownMenus();
7069
7069
  thisClass.displayShownMenus();
7070
7070
  });
7071
7071
 
7072
- me.myEventCls.onIds(["#" + me.pre + "reset_menupref_all", "#" + me.pre + "reset_menupref_all2"], "click", function(e) { me.icn3d; //e.preventDefault();
7072
+ me.myEventCls.onIds(["#" + me.pre + "reset_menupref_all", "#" + me.pre + "reset_menupref_all2"], "click", function(e) { me.icn3d; e.preventDefault();
7073
7073
  me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
7074
7074
 
7075
7075
  thisClass.applyShownMenus();
7076
7076
  thisClass.displayShownMenus();
7077
7077
  });
7078
7078
 
7079
- me.myEventCls.onIds(["#" + me.pre + "savepref", "#" + me.pre + "savepref2"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7079
+ me.myEventCls.onIds(["#" + me.pre + "savepref", "#" + me.pre + "savepref2"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7080
7080
  let menuStr = '[';
7081
7081
 
7082
7082
  //var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
@@ -7093,7 +7093,7 @@ class ClickMenu {
7093
7093
  ic.saveFileCls.saveFile('icn3d_menus_pref.txt', 'text', [menuStr]);
7094
7094
  });
7095
7095
 
7096
- me.myEventCls.onIds("#" + me.pre + "reload_menupreffile", "click", function(e) { me.icn3d; //e.preventDefault();
7096
+ me.myEventCls.onIds("#" + me.pre + "reload_menupreffile", "click", function(e) { me.icn3d; e.preventDefault();
7097
7097
 
7098
7098
  if(!me.cfg.notebook) dialog.dialog( "close" );
7099
7099
  let file = $("#" + me.pre + "menupreffile")[0].files[0];
@@ -7124,25 +7124,25 @@ class ClickMenu {
7124
7124
  }
7125
7125
  });
7126
7126
 
7127
- me.myEventCls.onIds("#" + me.pre + "mn1_menuloadpref", "click", function(e) { me.icn3d; //e.preventDefault();
7127
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuloadpref", "click", function(e) { me.icn3d; e.preventDefault();
7128
7128
  me.htmlCls.dialogCls.openDlg('dl_menuloadpref', 'Please input the menu preference file');
7129
7129
  });
7130
7130
 
7131
7131
 
7132
- me.myEventCls.onIds("#" + me.pre + "mn1_link_structure", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7132
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_structure", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7133
7133
  let url = ic.saveFileCls.getLinkToStructureSummary(true);
7134
7134
  let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
7135
7135
  window.open(url, urlTarget);
7136
7136
  });
7137
7137
 
7138
- me.myEventCls.onIds("#" + me.pre + "mn1_link_bind", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7138
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_bind", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7139
7139
  url = "https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid=" + ic.inputid;
7140
7140
  thisClass.setLogCmd("link to 3D protein structures bound to CID " + ic.inputid + ": " + url, false);
7141
7141
  let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
7142
7142
  window.open(url, urlTarget);
7143
7143
  });
7144
7144
 
7145
- me.myEventCls.onIds("#" + me.pre + "mn1_link_vast", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7145
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_vast", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7146
7146
  if(ic.inputid === undefined) {
7147
7147
  url = "https://www.ncbi.nlm.nih.gov/pccompound?term=" + ic.molTitle;
7148
7148
  thisClass.setLogCmd("link to compounds " + ic.molTitle + ": " + url, false);
@@ -7171,7 +7171,7 @@ class ClickMenu {
7171
7171
  window.open(url, urlTarget);
7172
7172
  });
7173
7173
 
7174
- me.myEventCls.onIds("#" + me.pre + "mn1_link_pubmed", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7174
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_pubmed", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7175
7175
  if(ic.inputid === undefined) {
7176
7176
  let url;
7177
7177
  url = "https://www.ncbi.nlm.nih.gov/pubmed/?term=" + ic.molTitle;
@@ -7217,7 +7217,7 @@ class ClickMenu {
7217
7217
  }
7218
7218
  });
7219
7219
 
7220
- me.myEventCls.onIds("#" + me.pre + "mn1_link_protein", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7220
+ me.myEventCls.onIds("#" + me.pre + "mn1_link_protein", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7221
7221
  //ic.saveFileCls.setEntrezLinks('protein');
7222
7222
  let structArray = Object.keys(ic.structures);
7223
7223
  let chainArray = Object.keys(ic.chains);
@@ -7242,19 +7242,19 @@ class ClickMenu {
7242
7242
 
7243
7243
  let thisClass = this;
7244
7244
 
7245
- me.myEventCls.onIds(["#" + me.pre + "mn6_selectannotations", "#" + me.pre + "tool_selectannotations"], "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
7245
+ me.myEventCls.onIds(["#" + me.pre + "mn6_selectannotations", "#" + me.pre + "tool_selectannotations"], "click", async function(e) { let ic = me.icn3d; e.preventDefault();
7246
7246
  await ic.showAnnoCls.showAnnotations();
7247
7247
  thisClass.setLogCmd("view annotations", true);
7248
7248
  //thisClass.setLogCmd("window annotations", true);
7249
7249
  });
7250
7250
 
7251
- me.myEventCls.onIds("#" + me.pre + "mn2_selectall", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7251
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectall", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7252
7252
  thisClass.setLogCmd("select all", true);
7253
7253
  ic.selectionCls.selectAll();
7254
7254
  ic.hlUpdateCls.removeHlAll();
7255
7255
  ic.drawCls.draw();
7256
7256
  });
7257
- me.myEventCls.onIds("#" + me.pre + "clearall", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7257
+ me.myEventCls.onIds("#" + me.pre + "clearall", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7258
7258
  thisClass.setLogCmd("clear all", true);
7259
7259
  ic.bSelectResidue = false;
7260
7260
  ic.selectionCls.selectAll();
@@ -7262,7 +7262,7 @@ class ClickMenu {
7262
7262
  ic.drawCls.draw();
7263
7263
  });
7264
7264
 
7265
- me.myEventCls.onIds("#" + me.pre + "mn2_selectdisplayed", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7265
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectdisplayed", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7266
7266
  thisClass.setLogCmd("select displayed set", true);
7267
7267
  //ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
7268
7268
  ic.hAtoms = me.hashUtilsCls.cloneHash(ic.viewSelectionAtoms);
@@ -7270,106 +7270,106 @@ class ClickMenu {
7270
7270
  //ic.drawCls.draw();
7271
7271
  });
7272
7272
 
7273
- me.myEventCls.onIds("#" + me.pre + "mn2_fullstru", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7273
+ me.myEventCls.onIds("#" + me.pre + "mn2_fullstru", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7274
7274
  thisClass.setLogCmd("show all", true);
7275
7275
  ic.selectionCls.showAll();
7276
7276
  });
7277
7277
 
7278
- me.myEventCls.onIds("#" + me.pre + "mn2_selectcomplement", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7278
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectcomplement", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7279
7279
  if(Object.keys(ic.hAtoms).length < Object.keys(ic.atoms).length) {
7280
7280
  thisClass.setLogCmd("select complement", true);
7281
7281
  ic.resid2specCls.selectComplement();
7282
7282
  }
7283
7283
  });
7284
7284
 
7285
- me.myEventCls.onIds("#" + me.pre + "mn2_selectmainchains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7285
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectmainchains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7286
7286
  thisClass.setLogCmd("select main chains", true);
7287
7287
  ic.selectionCls.selectMainChains();
7288
7288
  });
7289
7289
 
7290
- me.myEventCls.onIds("#" + me.pre + "mn2_selectsidechains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7290
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectsidechains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7291
7291
  thisClass.setLogCmd("select side chains", true);
7292
7292
  ic.selectionCls.selectSideChains();
7293
7293
  });
7294
7294
 
7295
- me.myEventCls.onIds("#" + me.pre + "mn2_selectmainsidechains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7295
+ me.myEventCls.onIds("#" + me.pre + "mn2_selectmainsidechains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7296
7296
  thisClass.setLogCmd("select main side chains", true);
7297
7297
  ic.selectionCls.selectMainSideChains();
7298
7298
  });
7299
7299
 
7300
- me.myEventCls.onIds("#" + me.pre + "mn2_propPos", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7300
+ me.myEventCls.onIds("#" + me.pre + "mn2_propPos", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7301
7301
  thisClass.setLogCmd("select prop positive", true);
7302
7302
  ic.resid2specCls.selectProperty('positive');
7303
7303
  });
7304
- me.myEventCls.onIds("#" + me.pre + "mn2_propNeg", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7304
+ me.myEventCls.onIds("#" + me.pre + "mn2_propNeg", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7305
7305
  thisClass.setLogCmd("select prop negative", true);
7306
7306
  ic.resid2specCls.selectProperty('negative');
7307
7307
  });
7308
- me.myEventCls.onIds("#" + me.pre + "mn2_propHydro", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7308
+ me.myEventCls.onIds("#" + me.pre + "mn2_propHydro", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7309
7309
  thisClass.setLogCmd("select prop hydrophobic", true);
7310
7310
  ic.resid2specCls.selectProperty('hydrophobic');
7311
7311
  });
7312
- me.myEventCls.onIds("#" + me.pre + "mn2_propPolar", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7312
+ me.myEventCls.onIds("#" + me.pre + "mn2_propPolar", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7313
7313
  thisClass.setLogCmd("select prop polar", true);
7314
7314
  ic.resid2specCls.selectProperty('polar');
7315
7315
  });
7316
- me.myEventCls.onIds("#" + me.pre + "mn2_propBfactor", "click", function(e) { me.icn3d; //e.preventDefault();
7316
+ me.myEventCls.onIds("#" + me.pre + "mn2_propBfactor", "click", function(e) { me.icn3d; e.preventDefault();
7317
7317
  me.htmlCls.dialogCls.openDlg('dl_propbybfactor', 'Select residue based on B-factor');
7318
7318
  });
7319
- me.myEventCls.onIds("#" + me.pre + "mn2_propSolAcc", "click", function(e) { me.icn3d; //e.preventDefault();
7319
+ me.myEventCls.onIds("#" + me.pre + "mn2_propSolAcc", "click", function(e) { me.icn3d; e.preventDefault();
7320
7320
  me.htmlCls.dialogCls.openDlg('dl_propbypercentout', 'Select residue based on the percentage of solvent accessilbe surface area');
7321
7321
  });
7322
- me.myEventCls.onIds("#" + me.pre + "applypropbybfactor", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7322
+ me.myEventCls.onIds("#" + me.pre + "applypropbybfactor", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7323
7323
  let from = $("#" + me.pre + "minbfactor").val();
7324
7324
  let to = $("#" + me.pre + "maxbfactor").val();
7325
7325
  thisClass.setLogCmd("select prop b factor | " + from + '_' + to, true);
7326
7326
  ic.resid2specCls.selectProperty('b factor', from, to);
7327
7327
  });
7328
- me.myEventCls.onIds("#" + me.pre + "applypropbypercentout", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7328
+ me.myEventCls.onIds("#" + me.pre + "applypropbypercentout", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7329
7329
  let from = $("#" + me.pre + "minpercentout").val();
7330
7330
  let to = $("#" + me.pre + "maxpercentout").val();
7331
7331
  thisClass.setLogCmd("select prop percent out | " + from + '_' + to, true);
7332
7332
  ic.resid2specCls.selectProperty('percent out', from, to);
7333
7333
  });
7334
7334
 
7335
- me.myEventCls.onIds("#" + me.pre + "mn2_alignment", "click", function(e) { me.icn3d; //e.preventDefault();
7335
+ me.myEventCls.onIds("#" + me.pre + "mn2_alignment", "click", function(e) { me.icn3d; e.preventDefault();
7336
7336
  me.htmlCls.dialogCls.openDlg('dl_alignment', 'Select residues in aligned sequences');
7337
7337
  thisClass.setLogCmd("window aligned sequences", true);
7338
7338
  });
7339
7339
 
7340
- me.myEventCls.onIds("#" + me.pre + "mn1_window_table", "click", function(e) { me.icn3d; //e.preventDefault();
7340
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_table", "click", function(e) { me.icn3d; e.preventDefault();
7341
7341
  me.htmlCls.dialogCls.openDlg('dl_allinteraction', 'Show interactions');
7342
7342
  thisClass.setLogCmd("window interaction table", true);
7343
7343
  });
7344
- me.myEventCls.onIds("#" + me.pre + "mn1_window_linegraph", "click", function(e) { me.icn3d; //e.preventDefault();
7344
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_linegraph", "click", function(e) { me.icn3d; e.preventDefault();
7345
7345
  me.htmlCls.dialogCls.openDlg('dl_linegraph', 'Show interactions between two lines of residue nodes');
7346
7346
  thisClass.setLogCmd("window interaction graph", true);
7347
7347
  });
7348
- me.myEventCls.onIds("#" + me.pre + "mn1_window_scatterplot", "click", function(e) { me.icn3d; //e.preventDefault();
7348
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_scatterplot", "click", function(e) { me.icn3d; e.preventDefault();
7349
7349
  me.htmlCls.dialogCls.openDlg('dl_scatterplot', 'Show interactions as map');
7350
7350
  thisClass.setLogCmd("window interaction scatterplot", true);
7351
7351
  });
7352
- me.myEventCls.onIds("#" + me.pre + "mn1_window_graph", "click", function(e) { me.icn3d; //e.preventDefault();
7352
+ me.myEventCls.onIds("#" + me.pre + "mn1_window_graph", "click", function(e) { me.icn3d; e.preventDefault();
7353
7353
  me.htmlCls.dialogCls.openDlg('dl_graph', 'Force-directed graph');
7354
7354
  thisClass.setLogCmd("window force-directed graph", true);
7355
7355
  });
7356
7356
 
7357
- me.myEventCls.onIds("#" + me.pre + "mn6_yournote", "click", function(e) { me.icn3d; //e.preventDefault();
7357
+ me.myEventCls.onIds("#" + me.pre + "mn6_yournote", "click", function(e) { me.icn3d; e.preventDefault();
7358
7358
  me.htmlCls.dialogCls.openDlg('dl_yournote', 'Your note about the current display');
7359
7359
  });
7360
7360
 
7361
- me.myEventCls.onIds("#" + me.pre + "applyyournote", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7361
+ me.myEventCls.onIds("#" + me.pre + "applyyournote", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7362
7362
  ic.yournote = $("#" + me.pre + "yournote").val();
7363
7363
  if(me.cfg.shownote) document.title = ic.yournote;
7364
7364
  if(!me.cfg.notebook) dialog.dialog( "close" );
7365
7365
  thisClass.setLogCmd('your note | ' + ic.yournote, true);
7366
7366
  });
7367
7367
 
7368
- me.myEventCls.onIds("#" + me.pre + "mn2_command", "click", function(e) { me.icn3d; //e.preventDefault();
7368
+ me.myEventCls.onIds("#" + me.pre + "mn2_command", "click", function(e) { me.icn3d; e.preventDefault();
7369
7369
  me.htmlCls.dialogCls.openDlg('dl_advanced2', 'Select by specification');
7370
7370
  });
7371
7371
 
7372
- 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();
7372
+ 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();
7373
7373
  ic.definedSetsCls.showSets();
7374
7374
  thisClass.setLogCmd('defined sets', true);
7375
7375
  //thisClass.setLogCmd('window defined sets', true);
@@ -7388,7 +7388,7 @@ class ClickMenu {
7388
7388
  });
7389
7389
 
7390
7390
 
7391
- me.myEventCls.onIds("#" + me.pre + "mn2_pkNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7391
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7392
7392
  ic.pk = 0;
7393
7393
  ic.opts['pk'] = 'no';
7394
7394
  thisClass.setLogCmd('set pk off', true);
@@ -7396,50 +7396,50 @@ class ClickMenu {
7396
7396
  ic.hlObjectsCls.removeHlObjects();
7397
7397
  });
7398
7398
 
7399
- me.myEventCls.onIds("#" + me.pre + "mn2_pkYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7399
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7400
7400
  ic.pk = 1;
7401
7401
  ic.opts['pk'] = 'atom';
7402
7402
  thisClass.setLogCmd('set pk atom', true);
7403
7403
  });
7404
7404
 
7405
- me.myEventCls.onIds("#" + me.pre + "mn2_pkResidue", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7405
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkResidue", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7406
7406
  ic.pk = 2;
7407
7407
  ic.opts['pk'] = 'residue';
7408
7408
  thisClass.setLogCmd('set pk residue', true);
7409
7409
  });
7410
7410
 
7411
- me.myEventCls.onIds("#" + me.pre + "mn2_pkStrand", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7411
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkStrand", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7412
7412
  ic.pk = 3;
7413
7413
  ic.opts['pk'] = 'strand';
7414
7414
  thisClass.setLogCmd('set pk strand', true);
7415
7415
  });
7416
7416
 
7417
- me.myEventCls.onIds("#" + me.pre + "mn2_pkDomain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7417
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkDomain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7418
7418
  ic.pk = 4;
7419
7419
  ic.opts['pk'] = 'domain';
7420
7420
  thisClass.setLogCmd('set pk domain', true);
7421
7421
  });
7422
7422
 
7423
- me.myEventCls.onIds("#" + me.pre + "mn2_pkChain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7423
+ me.myEventCls.onIds("#" + me.pre + "mn2_pkChain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7424
7424
  ic.pk = 5;
7425
7425
  ic.opts['pk'] = 'chain';
7426
7426
  thisClass.setLogCmd('set pk chain', true);
7427
7427
  });
7428
7428
 
7429
- me.myEventCls.onIds("#" + me.pre + "adjustmem", "click", function(e) { me.icn3d; //e.preventDefault();
7429
+ me.myEventCls.onIds("#" + me.pre + "adjustmem", "click", function(e) { me.icn3d; e.preventDefault();
7430
7430
  me.htmlCls.dialogCls.openDlg('dl_adjustmem', 'Adjust the Z-axis positions of the membrane');
7431
7431
  });
7432
7432
 
7433
- me.myEventCls.onIds("#" + me.pre + "togglemem", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7433
+ me.myEventCls.onIds("#" + me.pre + "togglemem", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7434
7434
  ic.selectionCls.toggleMembrane();
7435
7435
  thisClass.setLogCmd('toggle membrane', true);
7436
7436
  });
7437
7437
 
7438
- me.myEventCls.onIds("#" + me.pre + "selectplane", "click", function(e) { me.icn3d; //e.preventDefault();
7438
+ me.myEventCls.onIds("#" + me.pre + "selectplane", "click", function(e) { me.icn3d; e.preventDefault();
7439
7439
  me.htmlCls.dialogCls.openDlg('dl_selectplane', 'Select a region between two planes');
7440
7440
  });
7441
7441
 
7442
- me.myEventCls.onIds(["#" + me.pre + "mn2_aroundsphere", "#" + me.pre + "tool_aroundsphere"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7442
+ me.myEventCls.onIds(["#" + me.pre + "mn2_aroundsphere", "#" + me.pre + "tool_aroundsphere"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7443
7443
  thisClass.SetChainsAdvancedMenu();
7444
7444
 
7445
7445
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
@@ -7456,7 +7456,7 @@ class ClickMenu {
7456
7456
  $("#" + me.pre + "atomsCustomSphere2").resizable();
7457
7457
  });
7458
7458
 
7459
- me.myEventCls.onIds(["#" + me.pre + "mn2_select_chain", "#" + me.pre + "definedSets"], "click", function(e) { me.icn3d; //e.preventDefault();
7459
+ me.myEventCls.onIds(["#" + me.pre + "mn2_select_chain", "#" + me.pre + "definedSets"], "click", function(e) { me.icn3d; e.preventDefault();
7460
7460
  me.htmlCls.dialogCls.openDlg('dl_select_chain', 'Select Structure/Chain/Custom Selection');
7461
7461
  });
7462
7462
 
@@ -7467,242 +7467,242 @@ class ClickMenu {
7467
7467
 
7468
7468
  let thisClass = this;
7469
7469
  // mn 3
7470
- me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsRibbon","#" + me.pre + "tool_proteinsRibbon"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7470
+ me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsRibbon","#" + me.pre + "tool_proteinsRibbon"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7471
7471
  ic.setOptionCls.setStyle('proteins', 'ribbon');
7472
7472
  thisClass.setLogCmd('style proteins ribbon', true);
7473
7473
  });
7474
7474
 
7475
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStrand", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7475
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStrand", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7476
7476
  ic.setOptionCls.setStyle('proteins', 'strand');
7477
7477
  thisClass.setLogCmd('style proteins strand', true);
7478
7478
  });
7479
7479
 
7480
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCylinder", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7480
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCylinder", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7481
7481
  ic.setOptionCls.setStyle('proteins', 'cylinder and plate');
7482
7482
  thisClass.setLogCmd('style proteins cylinder and plate', true);
7483
7483
  });
7484
7484
 
7485
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsSchematic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7485
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsSchematic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7486
7486
  ic.setOptionCls.setStyle('proteins', 'schematic');
7487
7487
  thisClass.setLogCmd('style proteins schematic', true);
7488
7488
  });
7489
7489
 
7490
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCalpha", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7490
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsCalpha", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7491
7491
  ic.setOptionCls.setStyle('proteins', 'c alpha trace');
7492
7492
  thisClass.setLogCmd('style proteins c alpha trace', true);
7493
7493
  });
7494
7494
 
7495
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBackbone", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7495
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBackbone", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7496
7496
  ic.setOptionCls.setStyle('proteins', 'backbone');
7497
7497
  thisClass.setLogCmd('style proteins backbone', true);
7498
7498
  });
7499
7499
 
7500
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBfactor", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7500
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsBfactor", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7501
7501
  ic.setOptionCls.setStyle('proteins', 'b factor tube');
7502
7502
  thisClass.setLogCmd('style proteins b factor tube', true);
7503
7503
  });
7504
7504
 
7505
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7505
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7506
7506
  ic.setOptionCls.setStyle('proteins', 'lines');
7507
7507
  thisClass.setLogCmd('style proteins lines', true);
7508
7508
  });
7509
7509
 
7510
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7510
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7511
7511
  ic.setOptionCls.setStyle('proteins', 'stick');
7512
7512
  thisClass.setLogCmd('style proteins stick', true);
7513
7513
  });
7514
7514
 
7515
- me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsBallstick", "#" + me.pre + "tool_proteinsBallstick"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7515
+ me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsBallstick", "#" + me.pre + "tool_proteinsBallstick"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7516
7516
  ic.setOptionCls.setStyle('proteins', 'ball and stick');
7517
7517
  thisClass.setLogCmd('style proteins ball and stick', true);
7518
7518
  });
7519
7519
 
7520
- me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsSphere", "#" + me.pre + "tool_proteinsSphere"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7520
+ me.myEventCls.onIds(["#" + me.pre + "mn3_proteinsSphere", "#" + me.pre + "tool_proteinsSphere"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7521
7521
  ic.setOptionCls.setStyle('proteins', 'sphere');
7522
7522
  thisClass.setLogCmd('style proteins sphere', true);
7523
7523
  });
7524
7524
 
7525
- me.myEventCls.onIds("#" + me.pre + "mn3_proteinsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7525
+ me.myEventCls.onIds("#" + me.pre + "mn3_proteinsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7526
7526
  ic.setOptionCls.setStyle('proteins', 'nothing');
7527
7527
  thisClass.setLogCmd('style proteins nothing', true);
7528
7528
  });
7529
7529
 
7530
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7530
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7531
7531
  ic.setOptionCls.setStyle('sidec', 'lines2');
7532
7532
  thisClass.setLogCmd('style sidec lines2', true);
7533
7533
  });
7534
7534
 
7535
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7535
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7536
7536
  ic.setOptionCls.setStyle('sidec', 'stick2');
7537
7537
  thisClass.setLogCmd('style sidec stick2', true);
7538
7538
  });
7539
7539
 
7540
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7540
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7541
7541
  ic.setOptionCls.setStyle('sidec', 'ball and stick2');
7542
7542
  thisClass.setLogCmd('style sidec ball and stick2', true);
7543
7543
  });
7544
7544
 
7545
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7545
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7546
7546
  ic.setOptionCls.setStyle('sidec', 'sphere2');
7547
7547
  thisClass.setLogCmd('style sidec sphere2', true);
7548
7548
  });
7549
7549
 
7550
- me.myEventCls.onIds("#" + me.pre + "mn3_sidecNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7550
+ me.myEventCls.onIds("#" + me.pre + "mn3_sidecNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7551
7551
  ic.setOptionCls.setStyle('sidec', 'nothing');
7552
7552
  thisClass.setLogCmd('style sidec nothing', true);
7553
7553
  });
7554
7554
 
7555
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7555
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7556
7556
  ic.setOptionCls.setStyle('ntbase', 'lines2');
7557
7557
  thisClass.setLogCmd('style ntbase lines2', true);
7558
7558
  });
7559
7559
 
7560
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7560
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7561
7561
  ic.setOptionCls.setStyle('ntbase', 'stick2');
7562
7562
  thisClass.setLogCmd('style ntbase stick2', true);
7563
7563
  });
7564
7564
 
7565
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7565
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7566
7566
  ic.setOptionCls.setStyle('ntbase', 'ball and stick2');
7567
7567
  thisClass.setLogCmd('style ntbase ball and stick2', true);
7568
7568
  });
7569
7569
 
7570
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7570
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7571
7571
  ic.setOptionCls.setStyle('ntbase', 'sphere2');
7572
7572
  thisClass.setLogCmd('style ntbase sphere2', true);
7573
7573
  });
7574
7574
 
7575
- me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7575
+ me.myEventCls.onIds("#" + me.pre + "mn3_ntbaseNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7576
7576
  ic.setOptionCls.setStyle('ntbase', 'nothing');
7577
7577
  thisClass.setLogCmd('style ntbase nothing', true);
7578
7578
  });
7579
7579
 
7580
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclCartoon", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7580
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclCartoon", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7581
7581
  ic.setOptionCls.setStyle('nucleotides', 'nucleotide cartoon');
7582
7582
  thisClass.setLogCmd('style nucleotides nucleotide cartoon', true);
7583
7583
  });
7584
7584
 
7585
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclBackbone", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7585
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclBackbone", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7586
7586
  ic.setOptionCls.setStyle('nucleotides', 'backbone');
7587
7587
  thisClass.setLogCmd('style nucleotides backbone', true);
7588
7588
  });
7589
7589
 
7590
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclSchematic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7590
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclSchematic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7591
7591
  ic.setOptionCls.setStyle('nucleotides', 'schematic');
7592
7592
  thisClass.setLogCmd('style nucleotides schematic', true);
7593
7593
  });
7594
7594
 
7595
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclPhos", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7595
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclPhos", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7596
7596
  ic.setOptionCls.setStyle('nucleotides', 'o3 trace');
7597
7597
  thisClass.setLogCmd('style nucleotides o3 trace', true);
7598
7598
  });
7599
7599
 
7600
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7600
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7601
7601
  ic.setOptionCls.setStyle('nucleotides', 'lines');
7602
7602
  thisClass.setLogCmd('style nucleotides lines', true);
7603
7603
  });
7604
7604
 
7605
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7605
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7606
7606
  ic.setOptionCls.setStyle('nucleotides', 'stick');
7607
7607
  thisClass.setLogCmd('style nucleotides stick', true);
7608
7608
  });
7609
7609
 
7610
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7610
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7611
7611
  ic.setOptionCls.setStyle('nucleotides', 'ball and stick');
7612
7612
  thisClass.setLogCmd('style nucleotides ball and stick', true);
7613
7613
  });
7614
7614
 
7615
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7615
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7616
7616
  ic.setOptionCls.setStyle('nucleotides', 'sphere');
7617
7617
  thisClass.setLogCmd('style nucleotides sphere', true);
7618
7618
  });
7619
7619
 
7620
- me.myEventCls.onIds("#" + me.pre + "mn3_nuclNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7620
+ me.myEventCls.onIds("#" + me.pre + "mn3_nuclNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7621
7621
  ic.setOptionCls.setStyle('nucleotides', 'nothing');
7622
7622
  thisClass.setLogCmd('style nucleotides nothing', true);
7623
7623
  });
7624
7624
 
7625
- me.myEventCls.onIds("#" + me.pre + "mn3_ligLines", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7625
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligLines", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7626
7626
  ic.setOptionCls.setStyle('chemicals', 'lines');
7627
7627
  thisClass.setLogCmd('style chemicals lines', true);
7628
7628
  });
7629
7629
 
7630
- me.myEventCls.onIds("#" + me.pre + "mn3_ligStick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7630
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligStick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7631
7631
  ic.setOptionCls.setStyle('chemicals', 'stick');
7632
7632
  thisClass.setLogCmd('style chemicals stick', true);
7633
7633
  });
7634
7634
 
7635
- me.myEventCls.onIds("#" + me.pre + "mn3_ligBallstick", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7635
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligBallstick", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7636
7636
  ic.setOptionCls.setStyle('chemicals', 'ball and stick');
7637
7637
  thisClass.setLogCmd('style chemicals ball and stick', true);
7638
7638
  });
7639
7639
 
7640
- me.myEventCls.onIds("#" + me.pre + "mn3_ligSchematic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7640
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligSchematic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7641
7641
  ic.setOptionCls.setStyle('chemicals', 'schematic');
7642
7642
  thisClass.setLogCmd('style chemicals schematic', true);
7643
7643
  });
7644
7644
 
7645
- me.myEventCls.onIds("#" + me.pre + "mn3_ligSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7645
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7646
7646
  ic.setOptionCls.setStyle('chemicals', 'sphere');
7647
7647
  thisClass.setLogCmd('style chemicals sphere', true);
7648
7648
  });
7649
7649
 
7650
- me.myEventCls.onIds("#" + me.pre + "mn3_ligNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7650
+ me.myEventCls.onIds("#" + me.pre + "mn3_ligNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7651
7651
  ic.setOptionCls.setStyle('chemicals', 'nothing');
7652
7652
  thisClass.setLogCmd('style chemicals nothing', true);
7653
7653
  });
7654
7654
 
7655
7655
 
7656
- me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7656
+ me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7657
7657
  ic.bGlycansCartoon = true;
7658
7658
  ic.drawCls.draw();
7659
7659
  thisClass.setLogCmd('glycans cartoon yes', true);
7660
7660
  });
7661
- me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7661
+ me.myEventCls.onIds("#" + me.pre + "mn3_glycansCartNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7662
7662
  ic.bGlycansCartoon = false;
7663
7663
  ic.drawCls.draw();
7664
7664
  thisClass.setLogCmd('glycans cartoon no', true);
7665
7665
  });
7666
7666
 
7667
7667
 
7668
- me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7668
+ me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7669
7669
  ic.showInterCls.showHydrogens();
7670
7670
  ic.drawCls.draw();
7671
7671
  thisClass.setLogCmd('hydrogens', true);
7672
7672
  });
7673
7673
 
7674
- me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7674
+ me.myEventCls.onIds("#" + me.pre + "mn3_hydrogensNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7675
7675
  ic.showInterCls.hideHydrogens();
7676
7676
  ic.drawCls.draw();
7677
7677
  thisClass.setLogCmd('set hydrogens off', true);
7678
7678
  });
7679
7679
 
7680
- me.myEventCls.onIds("#" + me.pre + "mn3_ionsSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7680
+ me.myEventCls.onIds("#" + me.pre + "mn3_ionsSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7681
7681
  ic.setOptionCls.setStyle('ions', 'sphere');
7682
7682
  thisClass.setLogCmd('style ions sphere', true);
7683
7683
  });
7684
7684
 
7685
- me.myEventCls.onIds("#" + me.pre + "mn3_ionsDot", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7685
+ me.myEventCls.onIds("#" + me.pre + "mn3_ionsDot", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7686
7686
  ic.setOptionCls.setStyle('ions', 'dot');
7687
7687
  thisClass.setLogCmd('style ions dot', true);
7688
7688
  });
7689
7689
 
7690
- me.myEventCls.onIds("#" + me.pre + "mn3_ionsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7690
+ me.myEventCls.onIds("#" + me.pre + "mn3_ionsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7691
7691
  ic.setOptionCls.setStyle('ions', 'nothing');
7692
7692
  thisClass.setLogCmd('style ions nothing', true);
7693
7693
  });
7694
7694
 
7695
- me.myEventCls.onIds("#" + me.pre + "mn3_waterSphere", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7695
+ me.myEventCls.onIds("#" + me.pre + "mn3_waterSphere", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7696
7696
  ic.setOptionCls.setStyle('water', 'sphere');
7697
7697
  thisClass.setLogCmd('style water sphere', true);
7698
7698
  });
7699
7699
 
7700
- me.myEventCls.onIds("#" + me.pre + "mn3_waterDot", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7700
+ me.myEventCls.onIds("#" + me.pre + "mn3_waterDot", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7701
7701
  ic.setOptionCls.setStyle('water', 'dot');
7702
7702
  thisClass.setLogCmd('style water dot', true);
7703
7703
  });
7704
7704
 
7705
- me.myEventCls.onIds("#" + me.pre + "mn3_waterNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7705
+ me.myEventCls.onIds("#" + me.pre + "mn3_waterNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7706
7706
  ic.setOptionCls.setStyle('water', 'nothing');
7707
7707
  thisClass.setLogCmd('style water nothing', true);
7708
7708
  });
@@ -7714,16 +7714,16 @@ class ClickMenu {
7714
7714
 
7715
7715
  let thisClass = this;
7716
7716
  // mn 4
7717
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrum", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7717
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrum", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7718
7718
  ic.setOptionCls.setOption('color', 'spectrum');
7719
7719
  thisClass.setLogCmd('color spectrum', true);
7720
7720
  });
7721
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumChain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7721
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumChain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7722
7722
  ic.setOptionCls.setOption('color', 'spectrum for chains');
7723
7723
  thisClass.setLogCmd('color spectrum for chains', true);
7724
7724
  });
7725
7725
 
7726
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumAcrossSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7726
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumAcrossSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7727
7727
  thisClass.SetChainsAdvancedMenu();
7728
7728
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
7729
7729
  if($("#" + me.pre + "atomsCustomColorSpectrumAcross").length) {
@@ -7734,7 +7734,7 @@ class ClickMenu {
7734
7734
  $("#" + me.pre + "atomsCustomColorSpectrumAcross").resizable();
7735
7735
  });
7736
7736
 
7737
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7737
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSpectrumSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7738
7738
  thisClass.SetChainsAdvancedMenu();
7739
7739
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
7740
7740
  if($("#" + me.pre + "atomsCustomColorSpectrum").length) {
@@ -7745,7 +7745,7 @@ class ClickMenu {
7745
7745
  $("#" + me.pre + "atomsCustomColorSpectrum").resizable();
7746
7746
  });
7747
7747
 
7748
- me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowAcrossSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7748
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowAcrossSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7749
7749
  thisClass.SetChainsAdvancedMenu();
7750
7750
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
7751
7751
  if($("#" + me.pre + "atomsCustomColorRainbowAcross").length) {
@@ -7756,7 +7756,7 @@ class ClickMenu {
7756
7756
  $("#" + me.pre + "atomsCustomColorRainbowAcross").resizable();
7757
7757
  });
7758
7758
 
7759
- me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7759
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbowSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7760
7760
  thisClass.SetChainsAdvancedMenu();
7761
7761
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
7762
7762
  if($("#" + me.pre + "atomsCustomColorRainbow").length) {
@@ -7767,64 +7767,64 @@ class ClickMenu {
7767
7767
  $("#" + me.pre + "atomsCustomColorRainbow").resizable();
7768
7768
  });
7769
7769
 
7770
- me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbow", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7770
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrRainbow", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7771
7771
  ic.setOptionCls.setOption('color', 'rainbow');
7772
7772
  thisClass.setLogCmd('color rainbow', true);
7773
7773
  });
7774
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrRainbowChain", "#" + me.pre + "tool_clrRainbowChain"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7774
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrRainbowChain", "#" + me.pre + "tool_clrRainbowChain"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7775
7775
  ic.setOptionCls.setOption('color', 'rainbow for chains');
7776
7776
  thisClass.setLogCmd('color rainbow for chains', true);
7777
7777
  });
7778
7778
 
7779
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrChain", "#" + me.pre + "tool_clrChain"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7779
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrChain", "#" + me.pre + "tool_clrChain"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7780
7780
  ic.setOptionCls.setOption('color', 'chain');
7781
7781
  thisClass.setLogCmd('color chain', true);
7782
7782
  });
7783
- me.myEventCls.onIds("#" + me.pre + "mn4_clrStructure", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7783
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrStructure", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7784
7784
  ic.setOptionCls.setOption('color', 'structure');
7785
7785
  thisClass.setLogCmd('color structure', true);
7786
7786
  });
7787
7787
 
7788
- me.myEventCls.onIds("#" + me.pre + "mn4_clrdomain", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7788
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrdomain", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7789
7789
  ic.setOptionCls.setOption('color', 'domain');
7790
7790
  thisClass.setLogCmd('color domain', true);
7791
7791
  });
7792
7792
 
7793
- me.myEventCls.onIds("#" + me.pre + "mn4_clrsets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7793
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrsets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7794
7794
  ic.setOptionCls.setOption('color', 'defined sets');
7795
7795
  thisClass.setLogCmd('color defined sets', true);
7796
7796
  });
7797
7797
 
7798
7798
 
7799
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrSSGreen", "#" + me.pre + "tool_clrSSGreen"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7799
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrSSGreen", "#" + me.pre + "tool_clrSSGreen"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7800
7800
  ic.sheetcolor = 'green';
7801
7801
  ic.setOptionCls.setOption('color', 'secondary structure green');
7802
7802
  thisClass.setLogCmd('color secondary structure green', true);
7803
7803
  });
7804
7804
 
7805
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSSYellow", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7805
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSSYellow", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7806
7806
  ic.sheetcolor = 'yellow';
7807
7807
  ic.setOptionCls.setOption('color', 'secondary structure yellow');
7808
7808
  thisClass.setLogCmd('color secondary structure yellow', true);
7809
7809
  });
7810
7810
 
7811
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSSSpectrum", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7811
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSSSpectrum", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7812
7812
  ic.setOptionCls.setOption('color', 'secondary structure spectrum');
7813
7813
  thisClass.setLogCmd('color secondary structure spectrum', true);
7814
7814
  });
7815
7815
 
7816
- me.myEventCls.onIds("#" + me.pre + "mn4_clrResidue", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7816
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrResidue", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7817
7817
  //ic.legendClick = 2;
7818
7818
  ic.setOptionCls.setOption('color', 'residue');
7819
7819
  thisClass.setLogCmd('color residue', true);
7820
7820
  });
7821
7821
 
7822
- me.myEventCls.onIds("#" + me.pre + "mn4_clrResidueCustom", "click", function(e) { me.icn3d; //e.preventDefault();
7822
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrResidueCustom", "click", function(e) { me.icn3d; e.preventDefault();
7823
7823
  //ic.legendClick = 2;
7824
7824
  me.htmlCls.dialogCls.openDlg('dl_rescolorfile', 'Please input the file on residue colors');
7825
7825
  });
7826
7826
 
7827
- me.myEventCls.onIds("#" + me.pre + "reload_rescolorfile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7827
+ me.myEventCls.onIds("#" + me.pre + "reload_rescolorfile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7828
7828
 
7829
7829
  if(!me.cfg.notebook) dialog.dialog( "close" );
7830
7830
  let file = $("#" + me.pre + "rescolorfile")[0].files[0];
@@ -7848,7 +7848,7 @@ class ClickMenu {
7848
7848
  }
7849
7849
  });
7850
7850
 
7851
- me.myEventCls.onIds("#" + me.pre + "reload_customcolorfile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7851
+ me.myEventCls.onIds("#" + me.pre + "reload_customcolorfile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7852
7852
 
7853
7853
  if(!me.cfg.notebook) dialog.dialog( "close" );
7854
7854
  ic.startColor = $("#" + me.pre + "startColor").val();
@@ -7857,18 +7857,18 @@ class ClickMenu {
7857
7857
 
7858
7858
  let legendHtml = thisClass.setLegendHtml();
7859
7859
  //$("#" + me.pre + "legend").html(legendHtml).show();
7860
- $("#" + me.pre + "dl_legend").html(legendHtml);
7860
+ $("#" + me.pre + "dl_legend_html").html(legendHtml);
7861
7861
  me.htmlCls.dialogCls.openDlg('dl_legend', 'Color range');
7862
7862
 
7863
7863
  ic.addTrackCls.setCustomFile('color', ic.startColor, ic.midColor, ic.endColor);
7864
7864
  });
7865
7865
 
7866
- me.myEventCls.onIds("#" + me.pre + "mn6_customref", "click", function(e) { me.icn3d; //e.preventDefault();
7866
+ me.myEventCls.onIds("#" + me.pre + "mn6_customref", "click", function(e) { me.icn3d; e.preventDefault();
7867
7867
 
7868
7868
  me.htmlCls.dialogCls.openDlg('dl_customref', 'Set custom reference numbers');
7869
7869
  });
7870
7870
 
7871
- me.myEventCls.onIds("#" + me.pre + "reload_customreffile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7871
+ me.myEventCls.onIds("#" + me.pre + "reload_customreffile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7872
7872
 
7873
7873
  if(!me.cfg.notebook) dialog.dialog( "close" );
7874
7874
 
@@ -7891,98 +7891,98 @@ class ClickMenu {
7891
7891
  }
7892
7892
  });
7893
7893
 
7894
- me.myEventCls.onIds("#" + me.pre + "remove_legend", "click", function(e) { me.icn3d; //e.preventDefault();
7894
+ me.myEventCls.onIds("#" + me.pre + "remove_legend", "click", function(e) { me.icn3d; e.preventDefault();
7895
7895
 
7896
7896
  $("#" + me.pre + "legend").hide();
7897
7897
 
7898
7898
  thisClass.setLogCmd('remove legend', true);
7899
7899
  });
7900
- me.myEventCls.onIds("#" + me.pre + "reload_customtubefile", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7900
+ me.myEventCls.onIds("#" + me.pre + "reload_customtubefile", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7901
7901
 
7902
7902
  if(!me.cfg.notebook) dialog.dialog( "close" );
7903
7903
  ic.addTrackCls.setCustomFile('tube');
7904
7904
  });
7905
7905
 
7906
- me.myEventCls.onIds("#" + me.pre + "mn4_clrCharge", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7906
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrCharge", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7907
7907
  //ic.legendClick = 3;
7908
7908
  ic.setOptionCls.setOption('color', 'charge');
7909
7909
  thisClass.setLogCmd('color charge', true);
7910
7910
  });
7911
7911
 
7912
- me.myEventCls.onIds("#" + me.pre + "mn4_clrHydrophobic", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7912
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrHydrophobic", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7913
7913
  //ic.legendClick = 4;
7914
7914
  ic.setOptionCls.setOption('color', 'hydrophobic');
7915
7915
  thisClass.setLogCmd('color hydrophobic', true);
7916
7916
  });
7917
7917
 
7918
- me.myEventCls.onIds("#" + me.pre + "mn4_clrNormalizedHP", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7918
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrNormalizedHP", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7919
7919
  //ic.legendClick = 4;
7920
7920
  ic.setOptionCls.setOption('color', 'normalized hydrophobic');
7921
7921
  thisClass.setLogCmd('color normalized hydrophobic', true);
7922
7922
  });
7923
7923
 
7924
7924
 
7925
- me.myEventCls.onIds(["#" + me.pre + "mn4_clrAtom", "#" + me.pre + "tool_clrAtom"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7925
+ me.myEventCls.onIds(["#" + me.pre + "mn4_clrAtom", "#" + me.pre + "tool_clrAtom"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
7926
7926
  //ic.legendClick = 1;
7927
7927
  ic.setOptionCls.setOption('color', 'atom');
7928
7928
  thisClass.setLogCmd('color atom', true);
7929
7929
  });
7930
7930
 
7931
- me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactor", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7931
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactor", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7932
7932
  //ic.legendClick = 5;
7933
7933
  ic.setOptionCls.setOption('color', 'b factor');
7934
7934
  thisClass.setLogCmd('color b factor', true);
7935
7935
  });
7936
7936
 
7937
- me.myEventCls.onIds("#" + me.pre + "mn4_clrConfidence", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7937
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrConfidence", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7938
7938
  //ic.legendClick = 6;
7939
7939
  ic.setOptionCls.setOption('color', 'confidence');
7940
7940
  thisClass.setLogCmd('color confidence', true);
7941
7941
  });
7942
7942
 
7943
- me.myEventCls.onIds("#" + me.pre + "mn4_clrIgstrand", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7943
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrIgstrand", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7944
7944
  //ic.legendClick = 6;
7945
7945
  ic.setOptionCls.setOption('color', 'ig strand');
7946
7946
  thisClass.setLogCmd('color ig strand', true);
7947
7947
  });
7948
7948
 
7949
- me.myEventCls.onIds("#" + me.pre + "mn4_clrIgproto", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7949
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrIgproto", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7950
7950
  //ic.legendClick = 6;
7951
7951
  ic.setOptionCls.setOption('color', 'ig protodomain');
7952
7952
  thisClass.setLogCmd('color ig protodomain', true);
7953
7953
  });
7954
7954
 
7955
7955
 
7956
- me.myEventCls.onIds("#" + me.pre + "mn4_clrArea", "click", function(e) { me.icn3d; //e.preventDefault();
7956
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrArea", "click", function(e) { me.icn3d; e.preventDefault();
7957
7957
  me.htmlCls.dialogCls.openDlg('dl_colorbyarea', "Color based on residue's solvent accessibility");
7958
7958
  });
7959
- me.myEventCls.onIds("#" + me.pre + "applycolorbyarea", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7959
+ me.myEventCls.onIds("#" + me.pre + "applycolorbyarea", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7960
7960
  ic.midpercent = $("#" + me.pre + 'midpercent').val();
7961
7961
  ic.setOptionCls.setOption('color', 'area');
7962
7962
  thisClass.setLogCmd('color area | ' + ic.midpercent, true);
7963
7963
 
7964
7964
  });
7965
7965
 
7966
- me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactorNorm", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7966
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrBfactorNorm", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7967
7967
  ic.setOptionCls.setOption('color', 'b factor percentile');
7968
7968
  thisClass.setLogCmd('color b factor percentile', true);
7969
7969
  });
7970
7970
 
7971
- me.myEventCls.onIds("#" + me.pre + "mn4_clrIdentity", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7971
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrIdentity", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7972
7972
  ic.setOptionCls.setOption('color', 'identity');
7973
7973
  thisClass.setLogCmd('color identity', true);
7974
7974
  });
7975
7975
 
7976
- me.myEventCls.onIds("#" + me.pre + "mn4_clrConserved", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7976
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrConserved", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7977
7977
  ic.setOptionCls.setOption('color', 'conservation');
7978
7978
  thisClass.setLogCmd('color conservation', true);
7979
7979
  });
7980
7980
 
7981
- me.myEventCls.onIds("#" + me.pre + "mn4_clrCustom", "click", function(e) { me.icn3d; //e.preventDefault();
7981
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrCustom", "click", function(e) { me.icn3d; e.preventDefault();
7982
7982
  me.htmlCls.dialogCls.openDlg('dl_clr', 'Color picker');
7983
7983
  });
7984
7984
 
7985
- $(document).on("click", ".icn3d-color-rad-text", function(e) { let ic = me.icn3d; //e.preventDefault();
7985
+ $(document).on("click", ".icn3d-color-rad-text", function(e) { let ic = me.icn3d; e.preventDefault();
7986
7986
  e.stopImmediatePropagation();
7987
7987
  e.preventDefault();
7988
7988
  let color = $(this).attr('color');
@@ -7990,22 +7990,22 @@ class ClickMenu {
7990
7990
  thisClass.setLogCmd("color " + color, true);
7991
7991
  });
7992
7992
 
7993
- me.myEventCls.onIds("#" + me.pre + "mn4_clrSave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7993
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrSave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7994
7994
  ic.setOptionCls.saveColor();
7995
7995
  thisClass.setLogCmd('save color', true);
7996
7996
  });
7997
7997
 
7998
- me.myEventCls.onIds("#" + me.pre + "mn4_clrApplySave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
7998
+ me.myEventCls.onIds("#" + me.pre + "mn4_clrApplySave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
7999
7999
  ic.setOptionCls.applySavedColor();
8000
8000
  thisClass.setLogCmd('apply saved color', true);
8001
8001
  });
8002
8002
 
8003
- me.myEventCls.onIds("#" + me.pre + "mn3_styleSave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8003
+ me.myEventCls.onIds("#" + me.pre + "mn3_styleSave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8004
8004
  ic.setOptionCls.saveStyle();
8005
8005
  thisClass.setLogCmd('save style', true);
8006
8006
  });
8007
8007
 
8008
- me.myEventCls.onIds("#" + me.pre + "mn3_styleApplySave", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8008
+ me.myEventCls.onIds("#" + me.pre + "mn3_styleApplySave", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8009
8009
  ic.setOptionCls.applySavedStyle();
8010
8010
  thisClass.setLogCmd('apply saved style', true);
8011
8011
  });
@@ -8017,7 +8017,7 @@ class ClickMenu {
8017
8017
 
8018
8018
  let thisClass = this;
8019
8019
  // mn 5
8020
- me.myEventCls.onIds("#" + me.pre + "mn5_neighborsYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8020
+ me.myEventCls.onIds("#" + me.pre + "mn5_neighborsYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8021
8021
  ic.bConsiderNeighbors = true;
8022
8022
  ic.applyMapCls.removeLastSurface();
8023
8023
  ic.applyMapCls.applySurfaceOptions();
@@ -8025,7 +8025,7 @@ class ClickMenu {
8025
8025
  thisClass.setLogCmd('set surface neighbors on', true);
8026
8026
  });
8027
8027
 
8028
- me.myEventCls.onIds("#" + me.pre + "mn5_neighborsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8028
+ me.myEventCls.onIds("#" + me.pre + "mn5_neighborsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8029
8029
  ic.bConsiderNeighbors = false;
8030
8030
  ic.applyMapCls.removeLastSurface();
8031
8031
  ic.applyMapCls.applySurfaceOptions();
@@ -8033,48 +8033,48 @@ class ClickMenu {
8033
8033
  thisClass.setLogCmd('set surface neighbors off', true);
8034
8034
  });
8035
8035
 
8036
- me.myEventCls.onIds(["#" + me.pre + "mn5_surfaceVDW", "#" + me.pre + "tool_surfaceVDW"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8036
+ me.myEventCls.onIds(["#" + me.pre + "mn5_surfaceVDW", "#" + me.pre + "tool_surfaceVDW"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8037
8037
  ic.bConsiderNeighbors = false;
8038
8038
  ic.setOptionCls.setOption('surface', 'Van der Waals surface');
8039
8039
  thisClass.setLogCmd('set surface Van der Waals surface', true);
8040
8040
  });
8041
8041
 
8042
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSAS", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8042
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSAS", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8043
8043
  ic.bConsiderNeighbors = false;
8044
8044
  ic.setOptionCls.setOption('surface', 'solvent accessible surface');
8045
8045
  thisClass.setLogCmd('set surface solvent accessible surface', true);
8046
8046
  });
8047
8047
 
8048
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecular", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8048
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecular", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8049
8049
  ic.bConsiderNeighbors = false;
8050
8050
  ic.setOptionCls.setOption('surface', 'molecular surface');
8051
8051
  thisClass.setLogCmd('set surface molecular surface', true);
8052
8052
  });
8053
8053
 
8054
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceVDWContext", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8054
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceVDWContext", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8055
8055
  ic.bConsiderNeighbors = true;
8056
8056
  ic.setOptionCls.setOption('surface', 'Van der Waals surface with context');
8057
8057
  thisClass.setLogCmd('set surface Van der Waals surface with context', true);
8058
8058
  });
8059
8059
 
8060
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSASContext", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8060
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceSASContext", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8061
8061
  ic.bConsiderNeighbors = true;
8062
8062
  ic.setOptionCls.setOption('surface', 'solvent accessible surface with context');
8063
8063
  thisClass.setLogCmd('set surface solvent accessible surface with context', true);
8064
8064
  });
8065
8065
 
8066
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecularContext", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8066
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceMolecularContext", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8067
8067
  ic.bConsiderNeighbors = true;
8068
8068
  ic.setOptionCls.setOption('surface', 'molecular surface with context');
8069
8069
  thisClass.setLogCmd('set surface molecular surface with context', true);
8070
8070
  });
8071
8071
 
8072
- me.myEventCls.onIds("#" + me.pre + "mn5_surfaceNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8072
+ me.myEventCls.onIds("#" + me.pre + "mn5_surfaceNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8073
8073
  ic.setOptionCls.setOption('surface', 'nothing');
8074
8074
  thisClass.setLogCmd('set surface nothing', true);
8075
8075
  });
8076
8076
 
8077
- $(document).on("click", "." + me.pre + "mn5_opacity", function(e) { let ic = me.icn3d; //e.preventDefault();
8077
+ $(document).on("click", "." + me.pre + "mn5_opacity", function(e) { let ic = me.icn3d; e.preventDefault();
8078
8078
  ic.transparentRenderOrder = false;
8079
8079
 
8080
8080
  let value = $(this).attr('v');
@@ -8082,7 +8082,7 @@ class ClickMenu {
8082
8082
  thisClass.setLogCmd('set surface opacity ' + value, true);
8083
8083
  });
8084
8084
 
8085
- $(document).on("click", "." + me.pre + "mn5_opacityslow", function(e) { let ic = me.icn3d; //e.preventDefault();
8085
+ $(document).on("click", "." + me.pre + "mn5_opacityslow", function(e) { let ic = me.icn3d; e.preventDefault();
8086
8086
  ic.transparentRenderOrder = true;
8087
8087
 
8088
8088
  let value = $(this).attr('v');
@@ -8090,42 +8090,42 @@ class ClickMenu {
8090
8090
  thisClass.setLogCmd('set surface2 opacity ' + value, true);
8091
8091
  });
8092
8092
 
8093
- me.myEventCls.onIds("#" + me.pre + "mn5_wireframeYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8093
+ me.myEventCls.onIds("#" + me.pre + "mn5_wireframeYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8094
8094
  ic.setOptionCls.setOption('wireframe', 'yes');
8095
8095
  thisClass.setLogCmd('set surface wireframe on', true);
8096
8096
  });
8097
8097
 
8098
- me.myEventCls.onIds("#" + me.pre + "mn5_wireframeNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8098
+ me.myEventCls.onIds("#" + me.pre + "mn5_wireframeNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8099
8099
  ic.setOptionCls.setOption('wireframe', 'no');
8100
8100
  thisClass.setLogCmd('set surface wireframe off', true);
8101
8101
  });
8102
8102
 
8103
- me.myEventCls.onIds("#" + me.pre + "mn5_elecmap2fofc", "click", function(e) { me.icn3d; //e.preventDefault();
8103
+ me.myEventCls.onIds("#" + me.pre + "mn5_elecmap2fofc", "click", function(e) { me.icn3d; e.preventDefault();
8104
8104
  me.htmlCls.dialogCls.openDlg('dl_elecmap2fofc', '2Fo-Fc Electron Density Map');
8105
8105
  });
8106
8106
 
8107
- me.myEventCls.onIds("#" + me.pre + "mn5_elecmapfofc", "click", function(e) { me.icn3d; //e.preventDefault();
8107
+ me.myEventCls.onIds("#" + me.pre + "mn5_elecmapfofc", "click", function(e) { me.icn3d; e.preventDefault();
8108
8108
  me.htmlCls.dialogCls.openDlg('dl_elecmapfofc', 'Fo-Fc Electron Density Map');
8109
8109
  });
8110
8110
 
8111
- 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();
8111
+ 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();
8112
8112
  ic.setOptionCls.setOption('map', 'nothing');
8113
8113
  thisClass.setLogCmd('setoption map nothing', true);
8114
8114
  });
8115
8115
 
8116
- 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();
8116
+ 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();
8117
8117
  ic.setOptionCls.setOption('phimap', 'nothing');
8118
8118
  thisClass.setLogCmd('setoption phimap nothing', true);
8119
8119
  });
8120
8120
 
8121
- me.myEventCls.onIds(["#" + me.pre + "delphimapNo2", "#" + me.pre + "phimapNo2", "#" + me.pre + "phiurlmapNo2"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8121
+ me.myEventCls.onIds(["#" + me.pre + "delphimapNo2", "#" + me.pre + "phimapNo2", "#" + me.pre + "phiurlmapNo2"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8122
8122
  //ic.setOptionCls.setOption('surface', 'nothing');
8123
8123
  //thisClass.setLogCmd('set surface nothing', true);
8124
8124
  ic.setOptionCls.setOption('phisurface', 'nothing');
8125
8125
  thisClass.setLogCmd('setoption phisurface nothing', true);
8126
8126
  });
8127
8127
 
8128
- me.myEventCls.onIds("#" + me.pre + "applymap2fofc", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8128
+ me.myEventCls.onIds("#" + me.pre + "applymap2fofc", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8129
8129
 
8130
8130
  //if(!me.cfg.notebook) dialog.dialog( "close" );
8131
8131
  let sigma2fofc = parseFloat($("#" + me.pre + "sigma2fofc" ).val());
@@ -8135,7 +8135,7 @@ class ClickMenu {
8135
8135
  thisClass.setLogCmd('set map 2fofc sigma ' + sigma2fofc, true);
8136
8136
  });
8137
8137
 
8138
- me.myEventCls.onIds("#" + me.pre + "applymapfofc", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8138
+ me.myEventCls.onIds("#" + me.pre + "applymapfofc", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8139
8139
 
8140
8140
  //if(!me.cfg.notebook) dialog.dialog( "close" );
8141
8141
  let sigmafofc = parseFloat($("#" + me.pre + "sigmafofc" ).val());
@@ -8145,27 +8145,27 @@ class ClickMenu {
8145
8145
  thisClass.setLogCmd('set map fofc sigma ' + sigmafofc, true);
8146
8146
  });
8147
8147
 
8148
- me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8148
+ me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8149
8149
  //ic.dsn6ParserCls.dsn6Parser(ic.inputid);
8150
8150
  ic.setOptionCls.setOption('mapwireframe', 'yes');
8151
8151
  thisClass.setLogCmd('set map wireframe on', true);
8152
8152
  });
8153
8153
 
8154
- me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8154
+ me.myEventCls.onIds("#" + me.pre + "mn5_mapwireframeNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8155
8155
  ic.setOptionCls.setOption('mapwireframe', 'no');
8156
8156
  thisClass.setLogCmd('set map wireframe off', true);
8157
8157
  });
8158
8158
 
8159
- me.myEventCls.onIds("#" + me.pre + "mn5_emmap", "click", function(e) { me.icn3d; //e.preventDefault();
8159
+ me.myEventCls.onIds("#" + me.pre + "mn5_emmap", "click", function(e) { me.icn3d; e.preventDefault();
8160
8160
  me.htmlCls.dialogCls.openDlg('dl_emmap', 'EM Density Map');
8161
8161
  });
8162
8162
 
8163
- me.myEventCls.onIds(["#" + me.pre + "mn5_emmapNo", "#" + me.pre + "emmapNo2"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8163
+ me.myEventCls.onIds(["#" + me.pre + "mn5_emmapNo", "#" + me.pre + "emmapNo2"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8164
8164
  ic.setOptionCls.setOption('emmap', 'nothing');
8165
8165
  thisClass.setLogCmd('setoption emmap nothing', true);
8166
8166
  });
8167
8167
 
8168
- me.myEventCls.onIds("#" + me.pre + "applyemmap", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8168
+ me.myEventCls.onIds("#" + me.pre + "applyemmap", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8169
8169
 
8170
8170
  //if(!me.cfg.notebook) dialog.dialog( "close" );
8171
8171
  let empercentage = parseFloat($("#" + me.pre + "empercentage" ).val());
@@ -8176,13 +8176,13 @@ class ClickMenu {
8176
8176
  thisClass.setLogCmd('set emmap percentage ' + empercentage, true);
8177
8177
  });
8178
8178
 
8179
- me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8179
+ me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8180
8180
  //ic.dsn6ParserCls.dsn6Parser(ic.inputid);
8181
8181
  ic.setOptionCls.setOption('emmapwireframe', 'yes');
8182
8182
  thisClass.setLogCmd('set emmap wireframe on', true);
8183
8183
  });
8184
8184
 
8185
- me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8185
+ me.myEventCls.onIds("#" + me.pre + "mn5_emmapwireframeNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8186
8186
  ic.setOptionCls.setOption('emmapwireframe', 'no');
8187
8187
  thisClass.setLogCmd('set emmap wireframe off', true);
8188
8188
  });
@@ -8194,37 +8194,53 @@ class ClickMenu {
8194
8194
 
8195
8195
  let thisClass = this;
8196
8196
  // mn 6
8197
- me.myEventCls.onIds("#" + me.pre + "mn6_assemblyYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8197
+ me.myEventCls.onIds("#" + me.pre + "mn6_assemblyYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8198
8198
  ic.bAssembly = true;
8199
8199
  thisClass.setLogCmd('set assembly on', true);
8200
8200
  ic.drawCls.draw();
8201
8201
  });
8202
8202
 
8203
- me.myEventCls.onIds("#" + me.pre + "mn6_assemblyNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8203
+ me.myEventCls.onIds("#" + me.pre + "mn6_assemblyNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8204
8204
  ic.bAssembly = false;
8205
8205
  thisClass.setLogCmd('set assembly off', true);
8206
8206
  ic.drawCls.draw();
8207
8207
  });
8208
8208
 
8209
- me.myEventCls.onIds("#" + me.pre + "mn6_igrefYes", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
8209
+ me.myEventCls.onIds("#" + me.pre + "mn6_igrefYes", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
8210
8210
  thisClass.setLogCmd('ig refnum on', true);
8211
8211
  await ic.refnumCls.showIgRefNum();
8212
+
8213
+ if(ic.bShowRefnum) {
8214
+ ic.opts.color = 'ig strand';
8215
+ ic.setColorCls.setColorByOptions(ic.opts, ic.atoms);
8216
+
8217
+ ic.selectionCls.selectAll_base();
8218
+ ic.hlUpdateCls.updateHlAll();
8219
+ ic.drawCls.draw();
8220
+ }
8212
8221
  });
8213
8222
 
8214
- me.myEventCls.onIds("#" + me.pre + "mn6_igrefNo", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
8223
+ me.myEventCls.onIds("#" + me.pre + "mn6_igrefNo", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
8215
8224
  thisClass.setLogCmd('ig refnum off', true);
8216
8225
  await ic.refnumCls.hideIgRefNum();
8226
+
8227
+ ic.opts.color = 'chain';
8228
+ ic.setColorCls.setColorByOptions(ic.opts, ic.atoms);
8229
+
8230
+ ic.selectionCls.selectAll_base();
8231
+ ic.hlUpdateCls.updateHlAll();
8232
+ ic.drawCls.draw();
8217
8233
  });
8218
8234
 
8219
8235
 
8220
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelAtoms", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8236
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelAtoms", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8221
8237
  ic.residueLabelsCls.addAtomLabels(ic.hAtoms);
8222
8238
  ic.selectionCls.saveSelectionIfSelected();
8223
8239
  thisClass.setLogCmd('add atom labels', true);
8224
8240
  ic.drawCls.draw();
8225
8241
  });
8226
8242
 
8227
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelElements", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8243
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelElements", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8228
8244
  ic.residueLabelsCls.addAtomLabels(ic.hAtoms, true);
8229
8245
  ic.selectionCls.saveSelectionIfSelected();
8230
8246
  thisClass.setLogCmd('add element labels', true);
@@ -8232,35 +8248,35 @@ class ClickMenu {
8232
8248
  });
8233
8249
 
8234
8250
 
8235
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResidues", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8251
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResidues", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8236
8252
  ic.residueLabelsCls.addResidueLabels(ic.hAtoms);
8237
8253
  ic.selectionCls.saveSelectionIfSelected();
8238
8254
  thisClass.setLogCmd('add residue labels', true);
8239
8255
  ic.drawCls.draw();
8240
8256
  });
8241
8257
 
8242
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResnum", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8258
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelResnum", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8243
8259
  ic.residueLabelsCls.addResidueLabels(ic.hAtoms, undefined, undefined, true);
8244
8260
  ic.selectionCls.saveSelectionIfSelected();
8245
8261
  thisClass.setLogCmd('add residue number labels', true);
8246
8262
  ic.drawCls.draw();
8247
8263
  });
8248
8264
 
8249
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelChains", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8265
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelChains", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8250
8266
  ic.analysisCls.addChainLabels(ic.hAtoms);
8251
8267
  ic.selectionCls.saveSelectionIfSelected();
8252
8268
  thisClass.setLogCmd('add chain labels', true);
8253
8269
  ic.drawCls.draw();
8254
8270
  });
8255
8271
 
8256
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelTermini", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8272
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelTermini", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8257
8273
  ic.analysisCls.addTerminiLabels(ic.hAtoms);
8258
8274
  ic.selectionCls.saveSelectionIfSelected();
8259
8275
  thisClass.setLogCmd('add terminal labels', true);
8260
8276
  ic.drawCls.draw();
8261
8277
  });
8262
8278
 
8263
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8279
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8264
8280
  me.htmlCls.dialogCls.openDlg('dl_addlabel', 'Add custom labels by selection');
8265
8281
  ic.pk = 1;
8266
8282
  ic.opts['pk'] = 'atom';
@@ -8268,19 +8284,19 @@ class ClickMenu {
8268
8284
  ic.pAtomNum = 0;
8269
8285
  });
8270
8286
 
8271
- me.myEventCls.onIds("#" + me.pre + "mn6_addlabelSelection", "click", function(e) { me.icn3d; //e.preventDefault();
8287
+ me.myEventCls.onIds("#" + me.pre + "mn6_addlabelSelection", "click", function(e) { me.icn3d; e.preventDefault();
8272
8288
  me.htmlCls.dialogCls.openDlg('dl_addlabelselection', 'Add custom labels by the selected');
8273
8289
  });
8274
8290
 
8275
- me.myEventCls.onIds("#" + me.pre + "mn6_labelColor", "click", function(e) { me.icn3d; //e.preventDefault();
8291
+ me.myEventCls.onIds("#" + me.pre + "mn6_labelColor", "click", function(e) { me.icn3d; e.preventDefault();
8276
8292
  me.htmlCls.dialogCls.openDlg('dl_labelColor', 'Change color for all labels');
8277
8293
  });
8278
8294
 
8279
- me.myEventCls.onIds(["#" + me.pre + "mn2_saveselection","#" + me.pre + "tool_saveselection"], "click", function(e) { me.icn3d; //e.preventDefault();
8295
+ me.myEventCls.onIds(["#" + me.pre + "mn2_saveselection","#" + me.pre + "tool_saveselection"], "click", function(e) { me.icn3d; e.preventDefault();
8280
8296
  me.htmlCls.dialogCls.openDlg('dl_saveselection', 'Save the selected');
8281
8297
  });
8282
8298
 
8283
- me.myEventCls.onIds(["#" + me.pre + "mn6_addlabelNo", "#" + me.pre + "removeLabels"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8299
+ me.myEventCls.onIds(["#" + me.pre + "mn6_addlabelNo", "#" + me.pre + "removeLabels"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8284
8300
  ic.labelcolor = undefined;
8285
8301
  ic.pickpair = false;
8286
8302
  //ic.labels['residue'] = [];
@@ -8295,14 +8311,14 @@ class ClickMenu {
8295
8311
  ic.drawCls.draw();
8296
8312
  });
8297
8313
 
8298
- $(document).on("click", "." + me.pre + "mn6_labelscale", function(e) { let ic = me.icn3d; //e.preventDefault();
8314
+ $(document).on("click", "." + me.pre + "mn6_labelscale", function(e) { let ic = me.icn3d; e.preventDefault();
8299
8315
  let value = $(this).attr('v');
8300
8316
  ic.labelScale = value;
8301
8317
  ic.drawCls.draw();
8302
8318
  thisClass.setLogCmd('set label scale ' + value, true);
8303
8319
  });
8304
8320
 
8305
- me.myEventCls.onIds("#" + me.pre + "mn6_distanceYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8321
+ me.myEventCls.onIds("#" + me.pre + "mn6_distanceYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8306
8322
  me.htmlCls.dialogCls.openDlg('dl_distance', 'Measure the distance of atoms');
8307
8323
  ic.pk = 1;
8308
8324
  ic.opts['pk'] = 'atom';
@@ -8312,7 +8328,7 @@ class ClickMenu {
8312
8328
  });
8313
8329
 
8314
8330
 
8315
- me.myEventCls.onIds("#" + me.pre + "mn6_distTwoSets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8331
+ me.myEventCls.onIds("#" + me.pre + "mn6_distTwoSets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8316
8332
  me.htmlCls.dialogCls.openDlg('dl_disttwosets', 'Measure the distance between two sets');
8317
8333
 
8318
8334
  thisClass.setSetsMenus('atomsCustomDist');
@@ -8320,7 +8336,7 @@ class ClickMenu {
8320
8336
  ic.bMeasureDistance = true;
8321
8337
  });
8322
8338
 
8323
- me.myEventCls.onIds("#" + me.pre + "mn6_distManySets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8339
+ me.myEventCls.onIds("#" + me.pre + "mn6_distManySets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8324
8340
  me.htmlCls.dialogCls.openDlg('dl_distmanysets', 'Measure the pairwise distance among many sets');
8325
8341
 
8326
8342
  thisClass.setSetsMenus('atomsCustomDistTable');
@@ -8328,7 +8344,7 @@ class ClickMenu {
8328
8344
  ic.bMeasureDistance = true;
8329
8345
  });
8330
8346
 
8331
- me.myEventCls.onIds("#" + me.pre + "mn6_distanceNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8347
+ me.myEventCls.onIds("#" + me.pre + "mn6_distanceNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8332
8348
  ic.pickpair = false;
8333
8349
  let select = "set lines off";
8334
8350
  thisClass.setLogCmd(select, true);
@@ -8339,7 +8355,7 @@ class ClickMenu {
8339
8355
  ic.drawCls.draw();
8340
8356
  });
8341
8357
 
8342
- me.myEventCls.onIds("#" + me.pre + "mn5_cartoonshape", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8358
+ me.myEventCls.onIds("#" + me.pre + "mn5_cartoonshape", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8343
8359
  me.htmlCls.dialogCls.openDlg('dl_cartoonshape', 'Draw cartoon for a set');
8344
8360
 
8345
8361
  let bOneset = true;
@@ -8348,7 +8364,7 @@ class ClickMenu {
8348
8364
  ic.bCartoonshape = true;
8349
8365
  });
8350
8366
 
8351
- me.myEventCls.onIds("#" + me.pre + "mn5_linebtwsets", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8367
+ me.myEventCls.onIds("#" + me.pre + "mn5_linebtwsets", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8352
8368
  me.htmlCls.dialogCls.openDlg('dl_linebtwsets', 'Draw a line between two sets');
8353
8369
 
8354
8370
  thisClass.setSetsMenus('linebtwsets');
@@ -8357,21 +8373,21 @@ class ClickMenu {
8357
8373
  });
8358
8374
 
8359
8375
 
8360
- me.myEventCls.onIds(["#" + me.pre + "mn2_selectedcenter", "#" + me.pre + "zoomin_selection", "#" + me.pre + "tool_selectedcenter"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8376
+ me.myEventCls.onIds(["#" + me.pre + "mn2_selectedcenter", "#" + me.pre + "zoomin_selection", "#" + me.pre + "tool_selectedcenter"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8361
8377
  //thisClass.setLogCmd('zoom selection', true);
8362
8378
  ic.transformCls.zoominSelection();
8363
8379
  ic.drawCls.draw();
8364
8380
  thisClass.setLogCmd('zoom selection', true);
8365
8381
  });
8366
8382
 
8367
- me.myEventCls.onIds("#" + me.pre + "mn6_center", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8383
+ me.myEventCls.onIds("#" + me.pre + "mn6_center", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8368
8384
  //thisClass.setLogCmd('center selection', true);
8369
8385
  ic.applyCenterCls.centerSelection();
8370
8386
  ic.drawCls.draw();
8371
8387
  thisClass.setLogCmd('center selection', true);
8372
8388
  });
8373
8389
 
8374
- me.myEventCls.onIds(["#" + me.pre + "mn6_resetOrientation", "#" + me.pre + "resetOrientation", "#" + me.pre + "tool_resetOrientation"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8390
+ me.myEventCls.onIds(["#" + me.pre + "mn6_resetOrientation", "#" + me.pre + "resetOrientation", "#" + me.pre + "tool_resetOrientation"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8375
8391
  //thisClass.setLogCmd('reset orientation', true);
8376
8392
  ic.transformCls.resetOrientation();
8377
8393
  //ic.setColorCls.applyOriginalColor();
@@ -8379,17 +8395,17 @@ class ClickMenu {
8379
8395
  thisClass.setLogCmd('reset orientation', true);
8380
8396
  });
8381
8397
 
8382
- me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindingshow", "#" + me.pre + "chemicalbindingshow"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8398
+ me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindingshow", "#" + me.pre + "chemicalbindingshow"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8383
8399
  ic.setOptionCls.setOption('chemicalbinding', 'show');
8384
8400
  thisClass.setLogCmd('set chemicalbinding show', true);
8385
8401
  });
8386
8402
 
8387
- me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindinghide", "#" + me.pre + "chemicalbindinghide"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8403
+ me.myEventCls.onIds(["#" + me.pre + "mn6_chemicalbindinghide", "#" + me.pre + "chemicalbindinghide"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8388
8404
  ic.setOptionCls.setOption('chemicalbinding', 'hide');
8389
8405
  thisClass.setLogCmd('set chemicalbinding hide', true);
8390
8406
  });
8391
8407
 
8392
- me.myEventCls.onIds("#" + me.pre + "mn6_sidebyside", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8408
+ me.myEventCls.onIds("#" + me.pre + "mn6_sidebyside", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8393
8409
  if(ic.bInputfile) {
8394
8410
  alert("Side-by-Side does NOT work when the input is from a local file.");
8395
8411
  return;
@@ -8408,7 +8424,7 @@ class ClickMenu {
8408
8424
  });
8409
8425
 
8410
8426
 
8411
- $(document).on("click", "." + me.pre + "mn6_rotate", function(e) { let ic = me.icn3d; //e.preventDefault();
8427
+ $(document).on("click", "." + me.pre + "mn6_rotate", function(e) { let ic = me.icn3d; e.preventDefault();
8412
8428
  let value = $(this).attr('v').toLowerCase();
8413
8429
  let direction = value.split(' ')[1];
8414
8430
 
@@ -8420,7 +8436,7 @@ class ClickMenu {
8420
8436
  ic.resizeCanvasCls.rotStruc(direction);
8421
8437
  });
8422
8438
 
8423
- $(document).on("click", "." + me.pre + "mn6_rotate90", function(e) { let ic = me.icn3d; //e.preventDefault();
8439
+ $(document).on("click", "." + me.pre + "mn6_rotate90", function(e) { let ic = me.icn3d; e.preventDefault();
8424
8440
  let value = $(this).attr('v').toLowerCase();
8425
8441
  let direction = value.split('-')[0];
8426
8442
 
@@ -8439,21 +8455,21 @@ class ClickMenu {
8439
8455
  ic.transformCls.setRotation(axis, angle);
8440
8456
  });
8441
8457
 
8442
- me.myEventCls.onIds("#" + me.pre + "mn6_cameraPers", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8458
+ me.myEventCls.onIds("#" + me.pre + "mn6_cameraPers", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8443
8459
  ic.setOptionCls.setOption('camera', 'perspective');
8444
8460
  thisClass.setLogCmd('set camera perspective', true);
8445
8461
  });
8446
8462
 
8447
- me.myEventCls.onIds("#" + me.pre + "mn6_cameraOrth", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8463
+ me.myEventCls.onIds("#" + me.pre + "mn6_cameraOrth", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8448
8464
  ic.setOptionCls.setOption('camera', 'orthographic');
8449
8465
  thisClass.setLogCmd('set camera orthographic', true);
8450
8466
  });
8451
8467
 
8452
- me.myEventCls.onIds("#" + me.pre + "mn6_bkgdBlack", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8468
+ me.myEventCls.onIds("#" + me.pre + "mn6_bkgdBlack", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8453
8469
  ic.setStyleCls.setBackground('black');
8454
8470
  });
8455
8471
 
8456
- me.myEventCls.onIds("#" + me.pre + "tool_bkgd", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8472
+ me.myEventCls.onIds("#" + me.pre + "tool_bkgd", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8457
8473
  if(ic.opts['background'] == 'black') {
8458
8474
  ic.setStyleCls.setBackground('white');
8459
8475
  }
@@ -8462,19 +8478,19 @@ class ClickMenu {
8462
8478
  }
8463
8479
  });
8464
8480
 
8465
- me.myEventCls.onIds("#" + me.pre + "mn6_bkgdGrey", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8481
+ me.myEventCls.onIds("#" + me.pre + "mn6_bkgdGrey", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8466
8482
  ic.setStyleCls.setBackground('grey');
8467
8483
  });
8468
8484
 
8469
- me.myEventCls.onIds(["#" + me.pre + "mn6_bkgdWhite", "#" + me.pre + "tool_bkgdWhite"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8485
+ me.myEventCls.onIds(["#" + me.pre + "mn6_bkgdWhite", "#" + me.pre + "tool_bkgdWhite"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8470
8486
  ic.setStyleCls.setBackground('white');
8471
8487
  });
8472
8488
 
8473
- me.myEventCls.onIds("#" + me.pre + "mn6_bkgdTransparent", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8489
+ me.myEventCls.onIds("#" + me.pre + "mn6_bkgdTransparent", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8474
8490
  ic.setStyleCls.setBackground('transparent');
8475
8491
  });
8476
8492
 
8477
- me.myEventCls.onIds("#" + me.pre + "mn6_showfogYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8493
+ me.myEventCls.onIds("#" + me.pre + "mn6_showfogYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8478
8494
  //ic.setOptionCls.setOption('fog', 'yes');
8479
8495
  ic.opts['fog'] = 'yes';
8480
8496
  ic.fogCls.setFog(true);
@@ -8482,7 +8498,7 @@ class ClickMenu {
8482
8498
  thisClass.setLogCmd('set fog on', true);
8483
8499
  });
8484
8500
 
8485
- me.myEventCls.onIds("#" + me.pre + "mn6_showfogNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8501
+ me.myEventCls.onIds("#" + me.pre + "mn6_showfogNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8486
8502
  //ic.setOptionCls.setOption('fog', 'no');
8487
8503
  ic.opts['fog'] = 'no';
8488
8504
  ic.fogCls.setFog(true);
@@ -8490,22 +8506,22 @@ class ClickMenu {
8490
8506
  thisClass.setLogCmd('set fog off', true);
8491
8507
  });
8492
8508
 
8493
- me.myEventCls.onIds("#" + me.pre + "mn6_showslabYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8509
+ me.myEventCls.onIds("#" + me.pre + "mn6_showslabYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8494
8510
  ic.setOptionCls.setOption('slab', 'yes');
8495
8511
  thisClass.setLogCmd('set slab on', true);
8496
8512
  });
8497
8513
 
8498
- me.myEventCls.onIds("#" + me.pre + "mn6_showslabNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8514
+ me.myEventCls.onIds("#" + me.pre + "mn6_showslabNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8499
8515
  ic.setOptionCls.setOption('slab', 'no');
8500
8516
  thisClass.setLogCmd('set slab off', true);
8501
8517
  });
8502
8518
 
8503
- me.myEventCls.onIds("#" + me.pre + "mn6_showaxisYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8519
+ me.myEventCls.onIds("#" + me.pre + "mn6_showaxisYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8504
8520
  ic.setOptionCls.setOption('axis', 'yes');
8505
8521
  thisClass.setLogCmd('set axis on', true);
8506
8522
  });
8507
8523
 
8508
- me.myEventCls.onIds("#" + me.pre + "mn6_showaxisSel", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8524
+ me.myEventCls.onIds("#" + me.pre + "mn6_showaxisSel", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8509
8525
  ic.pc1 = true;
8510
8526
 
8511
8527
  ic.axesCls.setPc1Axes();
@@ -8513,7 +8529,7 @@ class ClickMenu {
8513
8529
  });
8514
8530
 
8515
8531
 
8516
- me.myEventCls.onIds("#" + me.pre + "mn6_showaxisNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8532
+ me.myEventCls.onIds("#" + me.pre + "mn6_showaxisNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8517
8533
  ic.pc1 = false;
8518
8534
  ic.axes = [];
8519
8535
 
@@ -8522,37 +8538,37 @@ class ClickMenu {
8522
8538
  thisClass.setLogCmd('set axis off', true);
8523
8539
  });
8524
8540
 
8525
- me.myEventCls.onIds("#" + me.pre + "mn6_symmetry", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
8541
+ me.myEventCls.onIds("#" + me.pre + "mn6_symmetry", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
8526
8542
  ic.bAxisOnly = false;
8527
8543
  await ic.symdCls.retrieveSymmetry(Object.keys(ic.structures)[0]);
8528
8544
  //me.htmlCls.dialogCls.openDlg('dl_symmetry', 'Symmetry');
8529
8545
  });
8530
8546
 
8531
- me.myEventCls.onIds("#" + me.pre + "mn6_symd", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
8547
+ me.myEventCls.onIds("#" + me.pre + "mn6_symd", "click", async function(e) { let ic = me.icn3d; e.preventDefault();
8532
8548
  ic.bAxisOnly = false;
8533
8549
  await ic.symdCls.retrieveSymd();
8534
8550
  ic.bSymd = true;
8535
8551
 
8536
8552
  thisClass.setLogCmd('symd symmetry', true);
8537
8553
  });
8538
- me.myEventCls.onIds("#" + me.pre + "mn6_clear_sym", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8554
+ me.myEventCls.onIds("#" + me.pre + "mn6_clear_sym", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8539
8555
  ic.symdArray = [];
8540
8556
  ic.drawCls.draw();
8541
8557
  thisClass.setLogCmd('clear symd symmetry', true);
8542
8558
  });
8543
- me.myEventCls.onIds("#" + me.pre + "mn6_axes_only", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8559
+ me.myEventCls.onIds("#" + me.pre + "mn6_axes_only", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8544
8560
  ic.bAxisOnly = true;
8545
8561
  ic.drawCls.draw();
8546
8562
  thisClass.setLogCmd('show axis', true);
8547
8563
  });
8548
8564
 
8549
8565
 
8550
- me.myEventCls.onIds("#" + me.pre + "mn6_area", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8566
+ me.myEventCls.onIds("#" + me.pre + "mn6_area", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8551
8567
  ic.analysisCls.calculateArea();
8552
8568
  thisClass.setLogCmd('area', true);
8553
8569
  });
8554
8570
 
8555
- me.myEventCls.onIds("#" + me.pre + "applysymmetry", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8571
+ me.myEventCls.onIds("#" + me.pre + "applysymmetry", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8556
8572
  ic.bAxisOnly = false;
8557
8573
 
8558
8574
  let title = $("#" + me.pre + "selectSymmetry" ).val();
@@ -8562,14 +8578,14 @@ class ClickMenu {
8562
8578
  ic.drawCls.draw();
8563
8579
  thisClass.setLogCmd('symmetry ' + title, true);
8564
8580
  });
8565
- me.myEventCls.onIds("#" + me.pre + "clearsymmetry", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8581
+ me.myEventCls.onIds("#" + me.pre + "clearsymmetry", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8566
8582
  let title = 'none';
8567
8583
  ic.symmetrytitle = undefined;
8568
8584
  ic.drawCls.draw();
8569
8585
  thisClass.setLogCmd('symmetry ' + title, true);
8570
8586
  });
8571
8587
 
8572
- me.myEventCls.onIds(["#" + me.pre + "mn6_hbondsYes", "#" + me.pre + "hbondsYes"], "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8588
+ me.myEventCls.onIds(["#" + me.pre + "mn6_hbondsYes", "#" + me.pre + "hbondsYes"], "click", function(e) { let ic = me.icn3d; e.preventDefault();
8573
8589
  thisClass.SetChainsAdvancedMenu();
8574
8590
 
8575
8591
  let definedAtomsHtml = ic.definedSetsCls.setAtomMenu(['protein']);
@@ -8586,17 +8602,17 @@ class ClickMenu {
8586
8602
  $("#" + me.pre + "atomsCustomHbond2").resizable();
8587
8603
  });
8588
8604
 
8589
- me.myEventCls.onIds(["#" + me.pre + "mn6_contactmap"], "click", function(e) { me.icn3d; //e.preventDefault();
8605
+ me.myEventCls.onIds(["#" + me.pre + "mn6_contactmap"], "click", function(e) { me.icn3d; e.preventDefault();
8590
8606
  me.htmlCls.dialogCls.openDlg('dl_contact', 'Set contact map');
8591
8607
  });
8592
8608
 
8593
8609
 
8594
- me.myEventCls.onIds("#" + me.pre + "mn6_hbondsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8610
+ me.myEventCls.onIds("#" + me.pre + "mn6_hbondsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8595
8611
  ic.showInterCls.hideHbondsContacts();
8596
8612
  ic.drawCls.draw();
8597
8613
  });
8598
8614
 
8599
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8615
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8600
8616
  let select = "stabilizer";
8601
8617
  ic.threeDPrintCls.addStabilizer();
8602
8618
  ic.threeDPrintCls.prepareFor3Dprint();
@@ -8604,14 +8620,14 @@ class ClickMenu {
8604
8620
  thisClass.setLogCmd(select, true);
8605
8621
  });
8606
8622
 
8607
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8623
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8608
8624
  let select = "set stabilizer off";
8609
8625
  thisClass.setLogCmd(select, true);
8610
8626
  ic.threeDPrintCls.hideStabilizer();
8611
8627
  ic.drawCls.draw();
8612
8628
  });
8613
8629
 
8614
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerOne", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8630
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerOne", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8615
8631
  me.htmlCls.dialogCls.openDlg('dl_stabilizer', 'Add One Stabilizer');
8616
8632
  ic.pk = 1;
8617
8633
  ic.opts['pk'] = 'atom';
@@ -8619,7 +8635,7 @@ class ClickMenu {
8619
8635
  ic.pAtomNum = 0;
8620
8636
  });
8621
8637
 
8622
- me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerRmOne", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8638
+ me.myEventCls.onIds("#" + me.pre + "mn1_stabilizerRmOne", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8623
8639
  me.htmlCls.dialogCls.openDlg('dl_stabilizer_rm', 'Remove One Stabilizer');
8624
8640
  ic.pk = 1;
8625
8641
  ic.opts['pk'] = 'atom';
@@ -8627,27 +8643,27 @@ class ClickMenu {
8627
8643
  ic.pAtomNum = 0;
8628
8644
  });
8629
8645
 
8630
- me.myEventCls.onIds("#" + me.pre + "mn1_thicknessSet", "click", function(e) { me.icn3d; //e.preventDefault();
8646
+ me.myEventCls.onIds("#" + me.pre + "mn1_thicknessSet", "click", function(e) { me.icn3d; e.preventDefault();
8631
8647
  me.htmlCls.dialogCls.openDlg('dl_thickness', 'Set Thickness for 3D Printing');
8632
8648
  });
8633
8649
 
8634
- me.myEventCls.onIds("#" + me.pre + "mn3_setThickness", "click", function(e) { me.icn3d; //e.preventDefault();
8650
+ me.myEventCls.onIds("#" + me.pre + "mn3_setThickness", "click", function(e) { me.icn3d; e.preventDefault();
8635
8651
  me.htmlCls.dialogCls.openDlg('dl_thickness2', 'Style Preferences');
8636
8652
  });
8637
8653
 
8638
8654
 
8639
- me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8655
+ me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8640
8656
  let select = "disulfide bonds";
8641
8657
  thisClass.setLogCmd(select, true);
8642
8658
  ic.showInterCls.showSsbonds();
8643
8659
  });
8644
8660
 
8645
- me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsExport", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8661
+ me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsExport", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8646
8662
  ic.viewInterPairsCls.exportSsbondPairs();
8647
8663
  thisClass.setLogCmd("export disulfide bond pairs", false);
8648
8664
  });
8649
8665
 
8650
- me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8666
+ me.myEventCls.onIds("#" + me.pre + "mn6_ssbondsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8651
8667
  ic.opts["ssbonds"] = "no";
8652
8668
  let select = "set disulfide bonds off";
8653
8669
  thisClass.setLogCmd(select, true);
@@ -8655,7 +8671,7 @@ class ClickMenu {
8655
8671
  ic.setOptionCls.setStyle('sidec', 'nothing');
8656
8672
  });
8657
8673
 
8658
- me.myEventCls.onIds("#" + me.pre + "mn6_clbondsYes", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8674
+ me.myEventCls.onIds("#" + me.pre + "mn6_clbondsYes", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8659
8675
  let select = "cross linkage";
8660
8676
  thisClass.setLogCmd(select, true);
8661
8677
  //ic.bShowCrossResidueBond = true;
@@ -8663,12 +8679,12 @@ class ClickMenu {
8663
8679
  ic.showInterCls.showClbonds();
8664
8680
  });
8665
8681
 
8666
- me.myEventCls.onIds("#" + me.pre + "mn6_clbondsExport", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8682
+ me.myEventCls.onIds("#" + me.pre + "mn6_clbondsExport", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8667
8683
  ic.viewInterPairsCls.exportClbondPairs();
8668
8684
  thisClass.setLogCmd("export cross linkage pairs", false);
8669
8685
  });
8670
8686
 
8671
- me.myEventCls.onIds("#" + me.pre + "mn6_clbondsNo", "click", function(e) { let ic = me.icn3d; //e.preventDefault();
8687
+ me.myEventCls.onIds("#" + me.pre + "mn6_clbondsNo", "click", function(e) { let ic = me.icn3d; e.preventDefault();
8672
8688
  ic.opts["clbonds"] = "no";
8673
8689
  let select = "set cross linkage off";
8674
8690
  thisClass.setLogCmd(select, true);
@@ -8715,6 +8731,11 @@ class ClickMenu {
8715
8731
  }
8716
8732
  });
8717
8733
  });
8734
+
8735
+ me.myEventCls.onIds("#" + me.pre + "jn_copy", "click", function(e) { me.icn3d; e.preventDefault();
8736
+ let text = $("#" + me.pre + "jn_commands").val();
8737
+ navigator.clipboard.writeText(text);
8738
+ });
8718
8739
  }
8719
8740
 
8720
8741
  //Show the input command in log. If "bSetCommand" is true, the command will be saved in the state file as well.
@@ -10269,8 +10290,8 @@ class SetMenu {
10269
10290
  //}
10270
10291
 
10271
10292
  //!!!
10272
- //html += this.getRadio('mn4_clr', 'mn4_clrIgstrand', 'Ig Strand', undefined, undefined, 2);
10273
- //html += this.getRadio('mn4_clr', 'mn4_clrIgproto', 'Ig Protodomain', undefined, undefined, 2);
10293
+ //!!!html += this.getRadio('mn4_clr', 'mn4_clrIgstrand', 'Ig Strand', undefined, undefined, 2);
10294
+ //!!!html += this.getRadio('mn4_clr', 'mn4_clrIgproto', 'Ig Protodomain', undefined, undefined, 2);
10274
10295
  }
10275
10296
  else {
10276
10297
  //if(!me.cfg.hidelicense) html += this.getRadio('mn4_clr', 'mn1_delphi2', 'DelPhi<br><span style="padding-left:1.5em;">Potential ' + me.htmlCls.licenseStr + '</span>');
@@ -10351,14 +10372,15 @@ class SetMenu {
10351
10372
 
10352
10373
  html += this.getLink('mn6_contactmap', 'Contact Map', undefined, 1);
10353
10374
 
10354
- if(!me.cfg.notebook) {
10375
+ //if(!me.cfg.notebook) {
10355
10376
  html += this.getLink('mn1_mutation', 'Mutation ' + me.htmlCls.wifiStr, 1, 1);
10356
- }
10377
+ //}
10357
10378
 
10358
10379
  //html += this.getMenuSep();
10359
10380
  }
10360
10381
 
10361
- if(!me.cfg.notebook && !me.cfg.hidelicense) {
10382
+ //if(!me.cfg.notebook && !me.cfg.hidelicense) {
10383
+ if(!me.cfg.hidelicense) {
10362
10384
  html += this.getMenuText('mn1_delphiwrap', 'DelPhi Potential', undefined, 1, 1);
10363
10385
 
10364
10386
  html += "<ul>";
@@ -11172,6 +11194,8 @@ class Dialog {
11172
11194
 
11173
11195
  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') {
11174
11196
  $( "#" + id ).show();
11197
+ $( "#" + id + "_nb").show();
11198
+ $( "#" + id + "_title").html(title);
11175
11199
 
11176
11200
  height =(me.htmlCls.HEIGHT) * 0.5;
11177
11201
 
@@ -11216,7 +11240,11 @@ class Dialog {
11216
11240
  });
11217
11241
  }
11218
11242
  else {
11219
- if(ic.bRender) $( "#" + id ).show();
11243
+ if(ic.bRender) {
11244
+ $( "#" + id ).show();
11245
+ $( "#" + id + "_nb").show();
11246
+ $( "#" + id + "_title").html(title);
11247
+ }
11220
11248
 
11221
11249
  height = 'auto';
11222
11250
  width = 'auto';
@@ -11266,6 +11294,18 @@ class SetDialog {
11266
11294
  return html;
11267
11295
  }
11268
11296
 
11297
+ addNotebookTitle(id, title, bAddExtraDiv) { let me = this.icn3dui; me.icn3d;
11298
+ //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>';
11299
+
11300
+ 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>';
11301
+
11302
+ if(bAddExtraDiv) {
11303
+ html += '<div id="' + me.pre + id + '_html"></div>';
11304
+ }
11305
+
11306
+ return html;
11307
+ }
11308
+
11269
11309
  //Set the html for all popup dialogs.
11270
11310
  setDialogs() { let me = this.icn3dui, ic = me.icn3d;
11271
11311
  if(me.bNode) return '';
@@ -11280,12 +11320,15 @@ class SetDialog {
11280
11320
 
11281
11321
  let divClass =(me.cfg.notebook) ? '' : 'icn3d-hidden';
11282
11322
  let dialogClass =(me.cfg.notebook) ? 'icn3d-hidden' : '';
11283
- html += me.htmlCls.divStr + "alldialogs' class='" + divClass + " icn3d-dialog'>";
11323
+ //html += me.htmlCls.divStr + "alldialogs' class='" + divClass + " icn3d-dialog' style='margin-top:" + me.htmlCls.CMD_HEIGHT + "px'>";
11324
+ html += me.htmlCls.divStr + "alldialogs' class='" + divClass + " icn3d-dialog' style='margin-top:12px'>";
11284
11325
 
11285
11326
  html += me.htmlCls.divStr + "dl_2ddgm' class='" + dialogClass + " icn3d-dl_2ddgm' style='background-color:white'>";
11327
+ html += this.addNotebookTitle('dl_2ddgm', '2D Diagram', true);
11286
11328
  html += "</div>";
11287
11329
 
11288
11330
  html += me.htmlCls.divStr + "dl_2dctn' class='" + dialogClass + " icn3d-dl_2dctn' style='background-color:white'>";
11331
+ html += this.addNotebookTitle('dl_2dctn', '2D Cartoon');
11289
11332
 
11290
11333
  me.svgid_ct = me.pre + "icn3d_cartoon";
11291
11334
 
@@ -11313,14 +11356,17 @@ class SetDialog {
11313
11356
 
11314
11357
  // if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined || ic.bRealign || ic.bSymd) {
11315
11358
  html += me.htmlCls.divStr + "dl_alignment' class='" + dialogClass + "' style='background-color:white;'>";
11359
+ html += this.addNotebookTitle('dl_alignment', 'Dynamically Calculated Symmetry using SymD');
11316
11360
  html += me.htmlCls.divStr + "symd_info'></div>";
11317
11361
  html += me.htmlCls.divStr + "alignseqguide_wrapper'><br>" + me.htmlCls.setHtmlCls.setAlignSequenceGuide() + "</div>";
11318
11362
  html += me.htmlCls.divStr + "dl_sequence2' class='icn3d-dl_sequence'>";
11363
+ html += this.addNotebookTitle('dl_sequence2', 'Select Residues in Aligned Sequences');
11319
11364
  html += "</div>";
11320
11365
  html += "</div>";
11321
11366
  // }
11322
11367
 
11323
11368
  html += me.htmlCls.divStr + "dl_definedsets' class='" + dialogClass + "'>";
11369
+ html += this.addNotebookTitle('dl_definedsets', 'Defined Sets');
11324
11370
  html += me.htmlCls.divStr + "dl_setsmenu'>";
11325
11371
  html += "<b>Defined Sets:</b> <br/>";
11326
11372
  html += "<select id='" + me.pre + "atomsCustom' multiple size='6' style='min-width:130px;'>";
@@ -11344,12 +11390,14 @@ class SetDialog {
11344
11390
  html += me.htmlCls.setHtmlCls.setAdvanced(2);
11345
11391
 
11346
11392
  html += me.htmlCls.divStr + "dl_vastplus' class='" + dialogClass + "' style='max-width:500px'>";
11393
+ html += this.addNotebookTitle('dl_vastplus', 'Please input PDB ID for VAST+');
11347
11394
  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>";
11348
11395
  html += "PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "vastpluspdbid' value='6VXX' size=8><br>";
11349
11396
  html += me.htmlCls.buttonStr + "reload_vastplus'>VAST+</button>";
11350
11397
  html += "</div>";
11351
11398
 
11352
11399
  html += me.htmlCls.divStr + "dl_vast' class='" + dialogClass + "' style='max-width:500px'>";
11400
+ html += this.addNotebookTitle('dl_vast', 'Pleaes input chain or PDB file for VAST');
11353
11401
  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>';
11354
11402
 
11355
11403
  html += '<b>Optione 1</b>, search with your selection (all residues are selected by default) in the loaded structures:<br>';
@@ -11378,6 +11426,7 @@ class SetDialog {
11378
11426
  html += "</div>";
11379
11427
 
11380
11428
  html += me.htmlCls.divStr + "dl_foldseek' class='" + dialogClass + "' style='max-width:500px'>";
11429
+ html += this.addNotebookTitle('dl_foldseek', 'Submit your selection to Foldseek');
11381
11430
  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>';
11382
11431
  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>';
11383
11432
 
@@ -11386,16 +11435,19 @@ class SetDialog {
11386
11435
  html += "</div>";
11387
11436
 
11388
11437
  html += me.htmlCls.divStr + "dl_mmtfid' class='" + dialogClass + "'>";
11438
+ html += this.addNotebookTitle('dl_mmtfid', 'Please input an MMTF ID');
11389
11439
  html += "MMTF ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmtfid' value='1TUP' size=8> ";
11390
11440
  html += me.htmlCls.buttonStr + "reload_mmtf'>Load</button>";
11391
11441
  html += "</div>";
11392
11442
 
11393
11443
  html += me.htmlCls.divStr + "dl_pdbid' class='" + dialogClass + "'>";
11444
+ html += this.addNotebookTitle('dl_pdbid', 'Please input a PDB ID');
11394
11445
  html += "PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "pdbid' value='1TUP' size=8> ";
11395
11446
  html += me.htmlCls.buttonStr + "reload_pdb'>Load</button>";
11396
11447
  html += "</div>";
11397
11448
 
11398
11449
  html += me.htmlCls.divStr + "dl_afid' class='" + dialogClass + "'>";
11450
+ html += this.addNotebookTitle('dl_afid', 'Please input an AlphaFold UniProt ID');
11399
11451
  html += "Note: AlphaFold produces a per-residue confidence score (pLDDT) between 0 and 100:<br>";
11400
11452
  html += me.htmlCls.clickMenuCls.setAlphaFoldLegend() + "<br>";
11401
11453
 
@@ -11408,27 +11460,32 @@ class SetDialog {
11408
11460
  html += "</div>";
11409
11461
 
11410
11462
  html += me.htmlCls.divStr + "dl_refseqid' class='" + dialogClass + "'>";
11463
+ html += this.addNotebookTitle('dl_refseqid', 'Please input an NCBI protein accession');
11411
11464
  html += "NCBI Protein Accession: " + me.htmlCls.inputTextStr + "id='" + me.pre + "refseqid' value='NP_001743.1' size=8> ";
11412
11465
  html += me.htmlCls.buttonStr + "reload_refseq'>Load</button>";
11413
11466
  html += "</div>";
11414
11467
 
11415
11468
  html += me.htmlCls.divStr + "dl_opmid' class='" + dialogClass + "'>";
11469
+ html += this.addNotebookTitle('dl_opmid', 'Please input an OPM PDB ID');
11416
11470
  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> ";
11417
11471
  html += me.htmlCls.buttonStr + "reload_opm'>Load</button>";
11418
11472
  html += "</div>";
11419
11473
 
11420
11474
  html += me.htmlCls.divStr + "dl_pdbfile' class='" + dialogClass + "'>";
11475
+ html += this.addNotebookTitle('dl_pdbfile', 'Please input a PDB file');
11421
11476
  html += "Note: Several PDB files could be concatenated into a single PDB file. Use the line \"ENDMDL\" to separate PDB files.<br><br>";
11422
11477
  html += "PDB File: " + me.htmlCls.inputFileStr + " id='" + me.pre + "pdbfile' size=8> ";
11423
11478
  html += me.htmlCls.buttonStr + "reload_pdbfile'>Load</button>";
11424
11479
  html += "</div>";
11425
11480
 
11426
11481
  html += me.htmlCls.divStr + "dl_pdbfile_app' class='" + dialogClass + "'>";
11482
+ html += this.addNotebookTitle('dl_pdbfile_app', 'Please append PDB files');
11427
11483
  html += "Multiple PDB Files: <input type='file' multiple id='" + me.pre + "pdbfile_app' size=8> ";
11428
11484
  html += me.htmlCls.buttonStr + "reload_pdbfile_app'>Append</button>";
11429
11485
  html += "</div>";
11430
11486
 
11431
11487
  html += me.htmlCls.divStr + "dl_rescolorfile' class='" + dialogClass + "'>";
11488
+ html += this.addNotebookTitle('dl_rescolorfile', 'Please input a residue color file');
11432
11489
  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>';
11433
11490
  html += '{"ALA":"#C8C8C8", "ARG":"#145AFF", ..., "G":"#008000", "A":"#6080FF", ...}</div><br>';
11434
11491
  html += "Residue Color File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "rescolorfile' size=8> ";
@@ -11436,6 +11493,7 @@ class SetDialog {
11436
11493
  html += "</div>";
11437
11494
 
11438
11495
  html += me.htmlCls.divStr + "dl_customcolor' class='" + dialogClass + "'>";
11496
+ html += this.addNotebookTitle('dl_customcolor', 'Please input a custom color file');
11439
11497
  html += " <input type='hidden' id='" + me.pre + "customcolor_chainid' value=''>";
11440
11498
  html += '<div style="width:450px;">The custom file for the structure has two columns separated by space or tab: ';
11441
11499
  html += 'residue number, and score in the range of 0-100. If you click "Apply Custom Color" button, ';
@@ -11463,6 +11521,7 @@ class SetDialog {
11463
11521
  html += "</div>";
11464
11522
 
11465
11523
  html += me.htmlCls.divStr + "dl_customref' class='" + dialogClass + "'>";
11524
+ html += this.addNotebookTitle('dl_customref', 'Please input a reference number file');
11466
11525
  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>';
11467
11526
  html += '<pre>refnum,11,12,,21,22,,10C,11C,20C<br>';
11468
11527
  html += '1TUP_A,100,101,,,132,,,,<br>';
@@ -11476,17 +11535,20 @@ class SetDialog {
11476
11535
  html += "</div>";
11477
11536
 
11478
11537
  html += me.htmlCls.divStr + "dl_align' class='" + dialogClass + "'>";
11538
+ html += this.addNotebookTitle('dl_align', 'Please select residues in aligned sequences');
11479
11539
  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/>";
11480
11540
  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>";
11481
11541
  html += "<b>VAST+ based on TM-align</b>: " + me.htmlCls.buttonStr + "reload_align_tmalign'>All Matching Molecules Superposed</button><br><br>";
11482
11542
  html += "</div>";
11483
11543
 
11484
11544
  html += me.htmlCls.divStr + "dl_alignaf' class='" + dialogClass + "'>";
11545
+ html += this.addNotebookTitle('dl_alignaf', 'Align AlphaFold structures');
11485
11546
  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/>";
11486
11547
  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>";
11487
11548
  html += "</div>";
11488
11549
 
11489
11550
  html += me.htmlCls.divStr + "dl_chainalign' class='" + dialogClass + "'>";
11551
+ html += this.addNotebookTitle('dl_chainalign', 'Align chains');
11490
11552
  html += "<div style='width:550px'>";
11491
11553
  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/>";
11492
11554
  html += "<b>Chain IDs</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "chainalignids' value='P69905,P01942,1HHO_A' size=50><br/><br/>";
@@ -11496,6 +11558,7 @@ class SetDialog {
11496
11558
  html += "</div></div>";
11497
11559
 
11498
11560
  html += me.htmlCls.divStr + "dl_chainalign2' class='" + dialogClass + "'>";
11561
+ html += this.addNotebookTitle('dl_chainalign2', 'Align chains');
11499
11562
  html += "<div style='width:550px'>";
11500
11563
  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/>";
11501
11564
  html += "<b>Chain IDs</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "chainalignids2' value='P69905,P01942,1HHO_A' size=50><br/><br/>";
@@ -11507,11 +11570,13 @@ class SetDialog {
11507
11570
  html += "</div></div>";
11508
11571
 
11509
11572
  html += me.htmlCls.divStr + "dl_chainalign3' class='" + dialogClass + "'>";
11573
+ html += this.addNotebookTitle('dl_chainalign3', 'Align chains');
11510
11574
  html += "<div style='width:550px'>";
11511
11575
  html += this.getHtmlAlignResidueByResidue('chainalignids3', 'predefinedres', 'reload_chainalign_asym3');
11512
11576
  html += "</div></div>";
11513
11577
 
11514
11578
  html += me.htmlCls.divStr + "dl_realignresbyres' class='" + dialogClass + "'>";
11579
+ html += this.addNotebookTitle('dl_realignresbyres', 'Realign residue by residue');
11515
11580
  html += "<div style='width:550px'>";
11516
11581
  html += "<b>Option 1</b>: " + me.htmlCls.buttonStr + "realignSelection'><b>Realign Current Selection Residue by Residue</b></button><br/><br/>";
11517
11582
  html += "<b>Option 2</b>: <br>";
@@ -11519,6 +11584,7 @@ class SetDialog {
11519
11584
  html += "</div></div>";
11520
11585
 
11521
11586
  html += me.htmlCls.divStr + "dl_mutation' class='" + dialogClass + "'>";
11587
+ html += this.addNotebookTitle('dl_mutation', 'Mutation analysis');
11522
11588
  html += "<div style='width:500px'>";
11523
11589
  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/>';
11524
11590
  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/>";
@@ -11537,25 +11603,30 @@ class SetDialog {
11537
11603
  html += "<br/><br/></div></div>";
11538
11604
 
11539
11605
  html += me.htmlCls.divStr + "dl_mol2file' class='" + dialogClass + "'>";
11606
+ html += this.addNotebookTitle('dl_mol2file', 'Please input a Mol2 file');
11540
11607
  html += "Mol2 File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "mol2file' size=8> ";
11541
11608
  html += me.htmlCls.buttonStr + "reload_mol2file'>Load</button>";
11542
11609
  html += "</div>";
11543
11610
  html += me.htmlCls.divStr + "dl_sdffile' class='" + dialogClass + "'>";
11611
+ html += this.addNotebookTitle('dl_sdffile', 'Please input an SDF file');
11544
11612
  html += "SDF File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "sdffile' size=8> ";
11545
11613
  html += me.htmlCls.buttonStr + "reload_sdffile'>Load</button>";
11546
11614
  html += "</div>";
11547
11615
  html += me.htmlCls.divStr + "dl_xyzfile' class='" + dialogClass + "'>";
11616
+ html += this.addNotebookTitle('dl_xyzfile', 'Please input an XYZ file');
11548
11617
  html += "XYZ File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "xyzfile' size=8> ";
11549
11618
  html += me.htmlCls.buttonStr + "reload_xyzfile'>Load</button>";
11550
11619
  html += "</div>";
11551
11620
 
11552
11621
  html += me.htmlCls.divStr + "dl_afmapfile' class='" + dialogClass + "'>";
11622
+ html += this.addNotebookTitle('dl_afmapfile', 'Please input an AlphaFold PAE file');
11553
11623
  html += "AlphaFold PAE File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "afmapfile' size=8> <br><br>";
11554
11624
  html += me.htmlCls.buttonStr + "reload_afmapfile'>Load Half PAE Map</button>"
11555
11625
  + me.htmlCls.buttonStr + "reload_afmapfilefull' style='margin-left:30px'>Load Full PAE Map (slow)</button>";
11556
11626
  html += "</div>";
11557
11627
 
11558
11628
  html += me.htmlCls.divStr + "dl_urlfile' class='" + dialogClass + "'>";
11629
+ html += this.addNotebookTitle('dl_urlfile', 'Please input a file via URL');
11559
11630
  html += "File type: ";
11560
11631
  html += "<select id='" + me.pre + "filetype'>";
11561
11632
  html += me.htmlCls.optionStr + "'pdb' selected>PDB</option>";
@@ -11571,16 +11642,19 @@ class SetDialog {
11571
11642
  html += "</div>";
11572
11643
 
11573
11644
  html += me.htmlCls.divStr + "dl_mmciffile' class='" + dialogClass + "'>";
11645
+ html += this.addNotebookTitle('dl_mmciffile', 'Please input an mmCIF file');
11574
11646
  html += "mmCIF File: " + me.htmlCls.inputFileStr + "id='" + me.pre + "mmciffile' value='1TUP' size=8> ";
11575
11647
  html += me.htmlCls.buttonStr + "reload_mmciffile'>Load</button>";
11576
11648
  html += "</div>";
11577
11649
 
11578
11650
  html += me.htmlCls.divStr + "dl_mmcifid' class='" + dialogClass + "'>";
11651
+ html += this.addNotebookTitle('dl_mmcifid', 'Please input an mmCIF ID');
11579
11652
  html += "mmCIF ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmcifid' value='1TUP' size=8> ";
11580
11653
  html += me.htmlCls.buttonStr + "reload_mmcif'>Load</button>";
11581
11654
  html += "</div>";
11582
11655
 
11583
11656
  html += me.htmlCls.divStr + "dl_mmdbid' class='" + dialogClass + "' style='max-width:500px'>";
11657
+ html += this.addNotebookTitle('dl_mmdbid', 'Please input an MMDB ID');
11584
11658
  html += "MMDB or PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmdbid' value='1TUP' size=8> <br><br>";
11585
11659
  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>";
11586
11660
  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="'
@@ -11593,6 +11667,7 @@ class SetDialog {
11593
11667
  html += "</div>";
11594
11668
 
11595
11669
  html += me.htmlCls.divStr + "dl_mmdbafid' class='" + dialogClass + "' style='max-width:600px'>";
11670
+ html += this.addNotebookTitle('dl_mmdbafid', 'Please input a list of PDB/AlphaFold IDs');
11596
11671
  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>";
11597
11672
  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/>";
11598
11673
  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/>";
@@ -11607,6 +11682,7 @@ class SetDialog {
11607
11682
  html += "</div>";
11608
11683
 
11609
11684
  html += me.htmlCls.divStr + "dl_blast_rep_id' style='max-width:600px;' class='" + dialogClass + "'>";
11685
+ html += this.addNotebookTitle('dl_blast_rep_id', 'Align sequence to structure');
11610
11686
  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> ";
11611
11687
  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> ";
11612
11688
  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>";
@@ -11618,32 +11694,38 @@ class SetDialog {
11618
11694
  html += "</div>";
11619
11695
 
11620
11696
  html += me.htmlCls.divStr + "dl_yournote' class='" + dialogClass + "'>";
11697
+ html += this.addNotebookTitle('dl_yournote', 'Your Note');
11621
11698
  html += "Your note will be saved in the HTML file when you click \"File > Save File > iCn3D PNG Image\".<br><br>";
11622
11699
  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>";
11623
11700
  html += me.htmlCls.buttonStr + "applyyournote'>Save</button>";
11624
11701
  html += "</div>";
11625
11702
 
11626
11703
  html += me.htmlCls.divStr + "dl_gi' class='" + dialogClass + "'>";
11704
+ html += this.addNotebookTitle('dl_gi', 'Please input an NCBI gi');
11627
11705
  html += "Protein gi: " + me.htmlCls.inputTextStr + "id='" + me.pre + "gi' value='1310960' size=8> ";
11628
11706
  html += me.htmlCls.buttonStr + "reload_gi'>Load</button>";
11629
11707
  html += "</div>";
11630
11708
 
11631
11709
  html += me.htmlCls.divStr + "dl_cid' class='" + dialogClass + "'>";
11710
+ html += this.addNotebookTitle('dl_cid', 'Please input a PubChem CID');
11632
11711
  html += "PubChem CID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "cid' value='2244' size=8> ";
11633
11712
  html += me.htmlCls.buttonStr + "reload_cid'>Load</button>";
11634
11713
  html += "</div>";
11635
11714
 
11636
11715
  html += me.htmlCls.divStr + "dl_pngimage' class='" + dialogClass + "'>";
11716
+ html += this.addNotebookTitle('dl_pngimage', 'Please input an iCn3D PNG Image file');
11637
11717
  html += "iCn3D PNG image: " + me.htmlCls.inputFileStr + "id='" + me.pre + "pngimage'><br/>";
11638
11718
  html += me.htmlCls.buttonStr + "reload_pngimage' style='margin-top: 6px;'>Load</button>";
11639
11719
  html += "</div>";
11640
11720
 
11641
11721
  html += me.htmlCls.divStr + "dl_state' class='" + dialogClass + "'>";
11722
+ html += this.addNotebookTitle('dl_state', 'Please input a state file');
11642
11723
  html += "State file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "state'><br/>";
11643
11724
  html += me.htmlCls.buttonStr + "reload_state' style='margin-top: 6px;'>Load</button>";
11644
11725
  html += "</div>";
11645
11726
 
11646
11727
  html += me.htmlCls.divStr + "dl_fixedversion' style='max-width:500px' class='" + dialogClass + "'>";
11728
+ html += this.addNotebookTitle('dl_fixedversion', 'Use fixed version of iCn3D');
11647
11729
  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>";
11648
11730
  html += "Share Link URL: " + me.htmlCls.inputTextStr + "id='" + me.pre + "sharelinkurl' size=60><br>";
11649
11731
  html += me.htmlCls.buttonStr + "reload_fixedversion'>Show Original View</button><br><br>";
@@ -11651,16 +11733,19 @@ class SetDialog {
11651
11733
 
11652
11734
 
11653
11735
  html += me.htmlCls.divStr + "dl_selection' class='" + dialogClass + "'>";
11736
+ html += this.addNotebookTitle('dl_selection', 'Load a selection file');
11654
11737
  html += "Selection file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "selectionfile'><br/>";
11655
11738
  html += me.htmlCls.buttonStr + "reload_selectionfile' style='margin-top: 6px;'>Load</button>";
11656
11739
  html += "</div>";
11657
11740
 
11658
11741
  html += me.htmlCls.divStr + "dl_menuloadpref' class='" + dialogClass + "'>";
11742
+ html += this.addNotebookTitle('dl_menuloadpref', 'Load a preference file');
11659
11743
  html += "Preference file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "menupreffile'><br/>";
11660
11744
  html += me.htmlCls.buttonStr + "reload_menupreffile' style='margin-top: 6px;'>Load</button>";
11661
11745
  html += "</div>";
11662
11746
 
11663
11747
  html += me.htmlCls.divStr + "dl_dsn6' class='" + dialogClass + "'>";
11748
+ html += this.addNotebookTitle('dl_dsn6', 'Load a DSN6 file');
11664
11749
  html += "<b>Note</b>: Always load a PDB file before loading DSN6 files. <br/><br/><br/>";
11665
11750
 
11666
11751
  html += "<span style='white-space:nowrap;font-weight:bold;'>2fofc contour at: <select id='" + me.pre + "dsn6sigma2fofc'>";
@@ -11683,6 +11768,7 @@ class SetDialog {
11683
11768
  html += "</div>";
11684
11769
 
11685
11770
  html += me.htmlCls.divStr + "dl_dsn6url' class='" + dialogClass + "'>";
11771
+ html += this.addNotebookTitle('dl_dsn6url', 'Load a selection file via a URL');
11686
11772
  html += "<b>Note</b>: Always load a PDB file before loading DSN6 files. <br/><br/><br/>";
11687
11773
 
11688
11774
  html += "<span style='white-space:nowrap;font-weight:bold;'>2fofc contour at: <select id='" + me.pre + "dsn6sigmaurl2fofc'>";
@@ -11704,6 +11790,7 @@ class SetDialog {
11704
11790
  html += "</div>";
11705
11791
 
11706
11792
  html += me.htmlCls.divStr + "dl_clr' class='" + dialogClass + "'>";
11793
+ html += this.addNotebookTitle('dl_clr', 'Pick a color');
11707
11794
  html += "Click in the input box to use the color picker:<br><br> ";
11708
11795
  html += "Custom Color: " + me.htmlCls.inputTextStr + "id='" + me.pre + "colorcustom' value='FF0000' size=8> ";
11709
11796
  html += me.htmlCls.buttonStr + "applycustomcolor'>Apply</button>";
@@ -11715,6 +11802,7 @@ class SetDialog {
11715
11802
  html += me.htmlCls.setHtmlCls.getPotentialHtml('url', dialogClass);
11716
11803
 
11717
11804
  html += me.htmlCls.divStr + "dl_symmetry' class='" + dialogClass + "'><br>";
11805
+ html += this.addNotebookTitle('dl_symmetry', 'Symmetry');
11718
11806
  html += me.htmlCls.divNowrapStr + "Symmetry: <select id='" + me.pre + "selectSymmetry'>";
11719
11807
  html += "</select>" + me.htmlCls.space3;
11720
11808
  html += me.htmlCls.buttonStr + "applysymmetry'>Apply</button>" + me.htmlCls.space3;
@@ -11722,10 +11810,12 @@ class SetDialog {
11722
11810
  html += "</div>";
11723
11811
 
11724
11812
  html += me.htmlCls.divStr + "dl_symd' style='max-width:400px' class='" + dialogClass + "'><br>";
11813
+ html += this.addNotebookTitle('dl_symd', 'Dynamically symmetry calculation using SymD');
11725
11814
 
11726
11815
  html += "</div>";
11727
11816
 
11728
11817
  html += me.htmlCls.divStr + "dl_contact' class='" + dialogClass + "'>";
11818
+ html += this.addNotebookTitle('dl_contact', 'Contact Map');
11729
11819
  html += "<span style='white-space:nowrap;font-weight:bold;'>Distance: <select id='" + me.pre + "contactdist'>";
11730
11820
  html += me.htmlCls.setHtmlCls.getOptionHtml(['4', '5', '6', '7', '8', '9', '10'], 4);
11731
11821
  html += "</select></span>";
@@ -11738,6 +11828,7 @@ class SetDialog {
11738
11828
  html += "</div>";
11739
11829
 
11740
11830
  html += me.htmlCls.divStr + "dl_hbonds' class='" + dialogClass + "'>";
11831
+ html += this.addNotebookTitle('dl_hbonds', 'Interaction Analysis');
11741
11832
  html += "1. Choose interaction types and their thresholds:<br>";
11742
11833
  html += "<div class='icn3d-box'><table border=0 width=450><tr>";
11743
11834
  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>";
@@ -11836,6 +11927,7 @@ class SetDialog {
11836
11927
  html += "</div>";
11837
11928
 
11838
11929
  html += me.htmlCls.divStr + "dl_realign' class='" + dialogClass + "'>";
11930
+ html += this.addNotebookTitle('dl_realign', 'Realign by sequence');
11839
11931
 
11840
11932
  html += me.htmlCls.divNowrapStr + "1. Select sets below <br>or use your current selection:</div><br>";
11841
11933
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomRealign' multiple size='5' style='min-width:130px;'>";
@@ -11845,6 +11937,7 @@ class SetDialog {
11845
11937
  html += "</div>";
11846
11938
 
11847
11939
  html += me.htmlCls.divStr + "dl_realignbystruct' class='" + dialogClass + "' style='max-width:500px'>";
11940
+ html += this.addNotebookTitle('dl_realignbystruct', 'Realign by structure');
11848
11941
 
11849
11942
  //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>";
11850
11943
  html += "<div><b>1</b>. Select sets below or use your current selection.</div><br>";
@@ -11860,6 +11953,7 @@ class SetDialog {
11860
11953
  html += "</div>";
11861
11954
 
11862
11955
  html += me.htmlCls.divStr + "dl_realigntwostru' class='" + dialogClass + "'>";
11956
+ html += this.addNotebookTitle('dl_realigntwostru', 'Realign two structure complexes');
11863
11957
 
11864
11958
  html += me.htmlCls.divNowrapStr + "1. Select sets below or use your current selection:</div><br>";
11865
11959
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomRealignByStruct2' multiple size='5' style='min-width:130px;'>";
@@ -11872,6 +11966,7 @@ class SetDialog {
11872
11966
 
11873
11967
 
11874
11968
  html += me.htmlCls.divStr + "dl_colorspectrumacrosssets' class='" + dialogClass + "'>";
11969
+ html += this.addNotebookTitle('dl_colorspectrumacrosssets', 'Set color spectrum across sets');
11875
11970
 
11876
11971
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
11877
11972
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorSpectrumAcross' multiple size='5' style='min-width:130px;'>";
@@ -11882,7 +11977,7 @@ class SetDialog {
11882
11977
 
11883
11978
 
11884
11979
  html += me.htmlCls.divStr + "dl_colorspectrumbysets' class='" + dialogClass + "'>";
11885
-
11980
+ html += this.addNotebookTitle('dl_colorspectrumbysets', 'Set color spectrum for residues in sets');
11886
11981
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
11887
11982
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorSpectrum' multiple size='5' style='min-width:130px;'>";
11888
11983
  html += "</select></div>";
@@ -11892,7 +11987,7 @@ class SetDialog {
11892
11987
 
11893
11988
 
11894
11989
  html += me.htmlCls.divStr + "dl_colorrainbowacrosssets' class='" + dialogClass + "'>";
11895
-
11990
+ html += this.addNotebookTitle('dl_colorrainbowacrosssets', 'Set color rainbow across sets');
11896
11991
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
11897
11992
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorRainbowAcross' multiple size='5' style='min-width:130px;'>";
11898
11993
  html += "</select></div>";
@@ -11902,7 +11997,7 @@ class SetDialog {
11902
11997
 
11903
11998
 
11904
11999
  html += me.htmlCls.divStr + "dl_colorrainbowbysets' class='" + dialogClass + "'>";
11905
-
12000
+ html += this.addNotebookTitle('dl_colorrainbowbysets', 'Set color rainbow for residues in sets');
11906
12001
  html += me.htmlCls.divNowrapStr + "1. Select sets below:</div><br>";
11907
12002
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomColorRainbow' multiple size='5' style='min-width:130px;'>";
11908
12003
  html += "</select></div>";
@@ -11912,12 +12007,15 @@ class SetDialog {
11912
12007
 
11913
12008
 
11914
12009
  html += me.htmlCls.divStr + "dl_allinteraction' style='background-color:white' class='" + dialogClass + "'>";
12010
+ html += this.addNotebookTitle('dl_allinteraction', 'All interactions', true);
11915
12011
  html += "</div>";
11916
12012
 
11917
12013
  html += me.htmlCls.divStr + "dl_interactionsorted' style='background-color:white' class='" + dialogClass + "'>";
12014
+ html += this.addNotebookTitle('dl_interactionsorted', 'Sorted interactions', true);
11918
12015
  html += "</div>";
11919
12016
 
11920
12017
  html += me.htmlCls.divStr + "dl_linegraph' style='background-color:white' class='" + dialogClass + "'>";
12018
+ html += this.addNotebookTitle('dl_linegraph', '2D Interaction Network');
11921
12019
 
11922
12020
  html += me.htmlCls.divNowrapStr + '<div style="width:20px; margin-top:6px; display:inline-block;"><span id="'
11923
12021
  + 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="'
@@ -11948,6 +12046,7 @@ class SetDialog {
11948
12046
  html += "</div>";
11949
12047
 
11950
12048
  html += me.htmlCls.divStr + "dl_scatterplot' style='background-color:white' class='" + dialogClass + "'>";
12049
+ html += this.addNotebookTitle('dl_scatterplot', '2D Interaction Map');
11951
12050
 
11952
12051
  html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3;
11953
12052
 
@@ -11974,6 +12073,7 @@ class SetDialog {
11974
12073
  html += "</div>";
11975
12074
 
11976
12075
  html += me.htmlCls.divStr + "dl_contactmap' style='background-color:white' class='" + dialogClass + "'>";
12076
+ html += this.addNotebookTitle('dl_contactmap', 'Contact Map');
11977
12077
 
11978
12078
  html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3 + "</div>";
11979
12079
 
@@ -11992,6 +12092,7 @@ class SetDialog {
11992
12092
  html += "</div>";
11993
12093
 
11994
12094
  html += me.htmlCls.divStr + "dl_alignerrormap' style='background-color:white' class='" + dialogClass + "'>";
12095
+ html += this.addNotebookTitle('dl_alignerrormap', 'PAE Map');
11995
12096
 
11996
12097
  html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3 + "</div>";
11997
12098
 
@@ -12019,6 +12120,7 @@ class SetDialog {
12019
12120
  html += "</div>";
12020
12121
 
12021
12122
  html += me.htmlCls.divStr + "dl_elecmap2fofc' class='" + dialogClass + "'>";
12123
+ html += this.addNotebookTitle('dl_elecmap2fofc', 'Electron Density 2F0-Fc Map');
12022
12124
  html += "<span style='white-space:nowrap;font-weight:bold;'>Contour at: <select id='" + me.pre + "sigma2fofc'>";
12023
12125
 
12024
12126
  html += me.htmlCls.setHtmlCls.getOptionHtml(optArray1, 3);
@@ -12027,6 +12129,7 @@ class SetDialog {
12027
12129
  html += "</div>";
12028
12130
 
12029
12131
  html += me.htmlCls.divStr + "dl_elecmapfofc' class='" + dialogClass + "'>";
12132
+ html += this.addNotebookTitle('dl_elecmapfofc', 'Electron Density F0-Fc Map');
12030
12133
  html += "<span style='white-space:nowrap;font-weight:bold;'>Contour at: <select id='" + me.pre + "sigmafofc'>";
12031
12134
 
12032
12135
  html += me.htmlCls.setHtmlCls.getOptionHtml(optArray1, 5);
@@ -12035,6 +12138,7 @@ class SetDialog {
12035
12138
  html += "</div>";
12036
12139
 
12037
12140
  html += me.htmlCls.divStr + "dl_emmap' class='" + dialogClass + "'>";
12141
+ html += this.addNotebookTitle('dl_emmap', 'EM Density Map');
12038
12142
  html += "<span style='white-space:nowrap;font-weight:bold;'>Contour at: <select id='" + me.pre + "empercentage'>";
12039
12143
 
12040
12144
  html += me.htmlCls.setHtmlCls.getOptionHtml(['0', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100'], 3);
@@ -12043,6 +12147,7 @@ class SetDialog {
12043
12147
  html += "</div>";
12044
12148
 
12045
12149
  html += me.htmlCls.divStr + "dl_aroundsphere' class='" + dialogClass + "'>";
12150
+ html += this.addNotebookTitle('dl_aroundsphere', 'Select a sphere around a set of residues');
12046
12151
  html += me.htmlCls.divNowrapStr + "1. Select the first set:</div>";
12047
12152
  html += "<div style='text-indent:1.1em'><select id='" + me.pre + "atomsCustomSphere2' multiple size='3' style='min-width:130px;'>";
12048
12153
  html += "</select></div><br>";
@@ -12057,6 +12162,7 @@ class SetDialog {
12057
12162
  html += "</div>";
12058
12163
 
12059
12164
  html += me.htmlCls.divStr + "dl_adjustmem' class='" + dialogClass + "'>";
12165
+ html += this.addNotebookTitle('dl_adjustmem', 'Adjust membranes');
12060
12166
  html += "<b>Note</b>: The membranes are parallel to the X-Y plane. The center of the membranes is at Z = 0. <br/><br/>";
12061
12167
  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/>";
12062
12168
  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/>";
@@ -12064,6 +12170,7 @@ class SetDialog {
12064
12170
  html += "</div>";
12065
12171
 
12066
12172
  html += me.htmlCls.divStr + "dl_selectplane' class='" + dialogClass + "'>";
12173
+ html += this.addNotebookTitle('dl_selectplane', 'Select a plane');
12067
12174
  html += "<b>Note</b>: The membranes are parallel to the X-Y plane. The center of the membranes is at Z = 0. <br/><br/>";
12068
12175
  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/>";
12069
12176
  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/>";
@@ -12071,6 +12178,7 @@ class SetDialog {
12071
12178
  html += "</div>";
12072
12179
 
12073
12180
  html += me.htmlCls.divStr + "dl_addlabel' class='" + dialogClass + "'>";
12181
+ html += this.addNotebookTitle('dl_addlabel', 'Add labels between two atoms');
12074
12182
  html += "1. Text: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labeltext' value='Text' size=4><br/>";
12075
12183
  html += "2. Size: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelsize' value='18' size=4 maxlength=2><br/>";
12076
12184
  html += "3. Color: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelcolor' value='" + defaultColor + "' size=4><br/>";
@@ -12085,6 +12193,7 @@ class SetDialog {
12085
12193
  html += "</div>";
12086
12194
 
12087
12195
  html += me.htmlCls.divStr + "dl_addlabelselection' class='" + dialogClass + "'>";
12196
+ html += this.addNotebookTitle('dl_addlabelselection', 'Add labels for your selection');
12088
12197
  html += "1. Text: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labeltext2' value='Text' size=4><br/>";
12089
12198
  html += "2. Size: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelsize2' value='18' size=4 maxlength=2><br/>";
12090
12199
  html += "3. Color: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelcolor2' value='" + defaultColor + "' size=4><br/>";
@@ -12093,11 +12202,13 @@ class SetDialog {
12093
12202
  html += "</div>";
12094
12203
 
12095
12204
  html += me.htmlCls.divStr + "dl_labelColor' class='" + dialogClass + "'>";
12205
+ html += this.addNotebookTitle('dl_labelColor', 'Change label color');
12096
12206
  html += "Color for all labels: " + me.htmlCls.inputTextStr + "id='" + me.pre + "labelcolorall' value='" + defaultColor + "' size=4><br/><br/>";
12097
12207
  html += me.htmlCls.spanNowrapStr + me.htmlCls.buttonStr + "applylabelcolor'>Display</button></span>";
12098
12208
  html += "</div>";
12099
12209
 
12100
12210
  html += me.htmlCls.divStr + "dl_distance' class='" + dialogClass + "'>";
12211
+ html += this.addNotebookTitle('dl_distance', 'Measure distance');
12101
12212
  if(me.utilsCls.isMobile()) {
12102
12213
  html += me.htmlCls.spanNowrapStr + "1. Touch TWO atoms</span><br/>";
12103
12214
  }
@@ -12109,6 +12220,7 @@ class SetDialog {
12109
12220
  html += "</div>";
12110
12221
 
12111
12222
  html += me.htmlCls.divStr + "dl_stabilizer' class='" + dialogClass + "'>";
12223
+ html += this.addNotebookTitle('dl_stabilizer', 'Add a stabilizer');
12112
12224
  if(me.utilsCls.isMobile()) {
12113
12225
  html += me.htmlCls.spanNowrapStr + "1. Touch TWO atoms</span><br/>";
12114
12226
  }
@@ -12120,6 +12232,7 @@ class SetDialog {
12120
12232
  html += "</div>";
12121
12233
 
12122
12234
  html += me.htmlCls.divStr + "dl_disttwosets' class='" + dialogClass + "'>";
12235
+ html += this.addNotebookTitle('dl_disttwosets', 'Measure the distance between two sets');
12123
12236
  html += me.htmlCls.spanNowrapStr + "1. Select two sets</span><br/>";
12124
12237
  html += "<table border=0 width=400 cellspacing=10><tr><td>";
12125
12238
 
@@ -12141,6 +12254,7 @@ class SetDialog {
12141
12254
 
12142
12255
 
12143
12256
  html += me.htmlCls.divStr + "dl_linebtwsets' class='" + dialogClass + "'>";
12257
+ html += this.addNotebookTitle('dl_linebtwsets', 'Add a line between two sets');
12144
12258
  html += me.htmlCls.spanNowrapStr + "1. Select two sets</span><br/>";
12145
12259
  html += "<table border=0 width=400 cellspacing=10><tr><td>";
12146
12260
 
@@ -12174,6 +12288,7 @@ class SetDialog {
12174
12288
 
12175
12289
 
12176
12290
  html += me.htmlCls.divStr + "dl_cartoonshape' class='" + dialogClass + "'>";
12291
+ html += this.addNotebookTitle('dl_cartoonshape', 'Cartoon Shape');
12177
12292
  html += me.htmlCls.spanNowrapStr + "1. Select a set:</span><br/>";
12178
12293
  html += "<div style='text-indent:1.1em'><select style='max-width:200px' id='" + me.pre + "cartoonshape' multiple size='5' style='min-width:130px;'>";
12179
12294
  html += "</select></div><br>";
@@ -12196,6 +12311,7 @@ class SetDialog {
12196
12311
 
12197
12312
 
12198
12313
  html += me.htmlCls.divStr + "dl_distmanysets' class='" + dialogClass + "'>";
12314
+ html += this.addNotebookTitle('dl_distmanysets', 'Measure distances among many sets');
12199
12315
  html += me.htmlCls.spanNowrapStr + "1. Select sets for pairwise distances</span><br/>";
12200
12316
  html += "<table border=0 width=400 cellspacing=10><tr><td>";
12201
12317
 
@@ -12215,6 +12331,7 @@ class SetDialog {
12215
12331
  html += "</div>";
12216
12332
 
12217
12333
  html += me.htmlCls.divStr + "dl_stabilizer_rm' class='" + dialogClass + "'>";
12334
+ html += this.addNotebookTitle('dl_stabilizer_rm', 'Remove a stabilizer');
12218
12335
  if(me.utilsCls.isMobile()) {
12219
12336
  html += me.htmlCls.spanNowrapStr + "1. Touch TWO atoms</span><br/>";
12220
12337
  }
@@ -12225,14 +12342,17 @@ class SetDialog {
12225
12342
  html += "</div>";
12226
12343
 
12227
12344
  html += me.htmlCls.divStr + "dl_thickness' class='" + dialogClass + "'>";
12345
+ html += this.addNotebookTitle('dl_thickness', 'Set thickness');
12228
12346
  html += me.htmlCls.setHtmlCls.setThicknessHtml('3dprint');
12229
12347
  html += "</div>";
12230
12348
 
12231
12349
  html += me.htmlCls.divStr + "dl_thickness2' class='" + dialogClass + "'>";
12350
+ html += this.addNotebookTitle('dl_thickness2', 'Set thickness');
12232
12351
  html += me.htmlCls.setHtmlCls.setThicknessHtml('style');
12233
12352
  html += "</div>";
12234
12353
 
12235
12354
  html += me.htmlCls.divStr + "dl_menupref' class='" + dialogClass + "'>";
12355
+ html += this.addNotebookTitle('dl_menupref', 'Preferences for menus');
12236
12356
  html += "<b>Note</b>: The following parameters will be saved in cache. You just need to set them once. <br><br>";
12237
12357
 
12238
12358
  html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "apply_menupref'>Apply</button></span>";
@@ -12248,6 +12368,7 @@ class SetDialog {
12248
12368
  html += "</div>";
12249
12369
 
12250
12370
  html += me.htmlCls.divStr + "dl_addtrack' class='" + dialogClass + "'>";
12371
+ html += this.addNotebookTitle('dl_addtrack', 'Add a track');
12251
12372
  html += " <input type='hidden' id='" + me.pre + "track_chainid' value=''>";
12252
12373
 
12253
12374
  html += me.htmlCls.divStr + "dl_addtrack_tabs' style='border:0px;'>";
@@ -12303,6 +12424,7 @@ class SetDialog {
12303
12424
  html += "</div>";
12304
12425
 
12305
12426
  html += me.htmlCls.divStr + "dl_saveselection' class='" + dialogClass + "'>";
12427
+ html += this.addNotebookTitle('dl_saveselection', 'Save Selection');
12306
12428
  let index =(ic && ic.defNames2Atoms) ? Object.keys(ic.defNames2Atoms).length : 1;
12307
12429
  let suffix = '';
12308
12430
  html += "Name: " + me.htmlCls.inputTextStr + "id='" + me.pre + "seq_command_name" + suffix + "' value='seq_" + index + "' size='5'> <br>";
@@ -12312,13 +12434,29 @@ class SetDialog {
12312
12434
 
12313
12435
 
12314
12436
  html += me.htmlCls.divStr + "dl_copyurl' style='width:520px;' class='" + dialogClass + "'>";
12437
+ html += this.addNotebookTitle('dl_copyurl', 'Share Link');
12438
+
12439
+ html += "1. <b>URLs Used in Browsers</b><br><br>";
12440
+
12315
12441
  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>";
12316
12442
  html += "Original URL with commands: <br><textarea id='" + me.pre + "ori_url' rows='4' style='width:100%'></textarea><br><br>";
12317
- 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>";
12318
- 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>";
12443
+ if(!me.cfg.notebook) {
12444
+ 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>";
12445
+ 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>";
12446
+ }
12447
+ html += "<br>";
12448
+
12449
+ html += "2. <b>Commands Used in Jupyter Noteboook</b><br><br>";
12450
+ html += "Please copy the following commands into a cell in Jupyter Notebook to show the same result.<br><br>";
12451
+
12452
+ html += '<textarea id="' + me.pre + 'jn_commands" rows="4" style="width:100%"></textarea><br>';
12453
+
12454
+ html += buttonStrTmp + me.pre + 'jn_copy">Copy Commands</button><br>';
12455
+
12319
12456
  html += "</div>";
12320
12457
 
12321
12458
  html += me.htmlCls.divStr + "dl_selectannotations' class='" + dialogClass + " icn3d-annotation' style='background-color:white;'>";
12459
+ html += this.addNotebookTitle('dl_selectannotations', 'Sequences & Annotations');
12322
12460
 
12323
12461
  html += me.htmlCls.divStr + "dl_annotations_tabs'>";
12324
12462
 
@@ -12347,6 +12485,7 @@ class SetDialog {
12347
12485
  html += "</div>";
12348
12486
 
12349
12487
  html += me.htmlCls.divStr + "dl_graph' style='background-color:white;' class='" + dialogClass + "'>";
12488
+ html += this.addNotebookTitle('dl_graph', 'Interactions');
12350
12489
  me.svgid = me.pre + 'icn3d_viz';
12351
12490
  html += '<style>';
12352
12491
  html += '#' + me.svgid + ' svg { border: 1px solid; font: 13px sans-serif; text-anchor: end; }';
@@ -12401,6 +12540,7 @@ class SetDialog {
12401
12540
  html += "</div>";
12402
12541
 
12403
12542
  html += me.htmlCls.divStr + "dl_area' class='" + dialogClass + "'>";
12543
+ html += this.addNotebookTitle('dl_area', 'Surface Area');
12404
12544
  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>";
12405
12545
  html += '(0-20% out is considered "in". 50-100% out is considered "out".)<br><br>';
12406
12546
  html += "<b>Toal</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "areavalue' value='' size='10'> &#8491;<sup>2</sup><br><br>";
@@ -12408,19 +12548,23 @@ class SetDialog {
12408
12548
  html += "</div>";
12409
12549
 
12410
12550
  html += me.htmlCls.divStr + "dl_colorbyarea' class='" + dialogClass + "'>";
12551
+ html += this.addNotebookTitle('dl_colorbyarea', 'Color by surface area');
12411
12552
  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>";
12412
12553
  html += "<b>Middle Percentage(White)</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "midpercent' value='35' size='10'>% <br><br>";
12413
12554
  html += "<button style='white-space:nowrap;' id='" + me.pre + "applycolorbyarea'>Color</button><br/><br/>";
12414
12555
  html += "</div>";
12415
12556
 
12416
12557
  html += me.htmlCls.divStr + "dl_rmsd' class='" + dialogClass + "' style='max-width:300px'>";
12558
+ html += this.addNotebookTitle('dl_rmsd', 'RMSD', true);
12417
12559
 
12418
12560
  html += "</div>";
12419
12561
 
12420
12562
  html += me.htmlCls.divStr + "dl_buriedarea' class='" + dialogClass + "'>";
12563
+ html += this.addNotebookTitle('dl_buriedarea', 'Buried surface area', true);
12421
12564
  html += "</div>";
12422
12565
 
12423
12566
  html += me.htmlCls.divStr + "dl_propbypercentout' class='" + dialogClass + "'>";
12567
+ html += this.addNotebookTitle('dl_propbypercentout', 'Select residues basen on solvent accessilbe surface area');
12424
12568
  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>";
12425
12569
  html += "<b>Min Percentage</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "minpercentout' value='0' size='10'>% <br>";
12426
12570
  html += "<b>Max Percentage</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "maxpercentout' value='100' size='10'>% <br>";
@@ -12428,6 +12572,7 @@ class SetDialog {
12428
12572
  html += "</div>";
12429
12573
 
12430
12574
  html += me.htmlCls.divStr + "dl_propbybfactor' class='" + dialogClass + "'>";
12575
+ html += this.addNotebookTitle('dl_propbybfactor', 'Select residues basen on B-factor');
12431
12576
  html += "<div style='width:400px'>Select residue based on B-factor. The values are in the range of 0-100.</div><br>";
12432
12577
  html += "<b>Min B-factor</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "minbfactor' value='0' size='10'>% <br>";
12433
12578
  html += "<b>Max B-factor</b>: " + me.htmlCls.inputTextStr + "id='" + me.pre + "maxbfactor' value='100' size='10'>% <br>";
@@ -12435,9 +12580,11 @@ class SetDialog {
12435
12580
  html += "</div>";
12436
12581
 
12437
12582
  html += me.htmlCls.divStr + "dl_legend' class='" + dialogClass + "' style='max-width:500px; background-color:white'>";
12583
+ html += this.addNotebookTitle('dl_legend', 'Legend', true);
12438
12584
  html += "</div>";
12439
12585
 
12440
12586
  html += me.htmlCls.divStr + "dl_disttable' class='" + dialogClass + "'>";
12587
+ html += this.addNotebookTitle('dl_disttable', 'Distance Table', true);
12441
12588
  html += "</div>";
12442
12589
 
12443
12590
  html += "</div>";
@@ -15753,6 +15900,8 @@ class SetHtml {
15753
15900
  }
15754
15901
 
15755
15902
  html += me.htmlCls.divStr + "dl_" + name1 + "' class='" + dialogClass + "'>";
15903
+ html += me.htmlCls.setDialogCls.addNotebookTitle("dl_" + name1, 'DelPhi Potential');
15904
+
15756
15905
  html += me.htmlCls.divStr + "dl_" + name1 + "_tabs' style='border:0px;'>";
15757
15906
  html += "<ul>";
15758
15907
  html += "<li><a href='#" + me.pre + name1 + "tab1'>" + tab1 + "</a></li>";
@@ -16066,7 +16215,7 @@ class SetHtml {
16066
16215
  statefile = imageStr.substr(posState + matchedStrState.length, posStateEnd - posState- matchedStrState.length);
16067
16216
  //statefile = decodeURIComponent(statefile);
16068
16217
  statefile = decodeURIComponent(statefile + "\n" + commandStr);
16069
-
16218
+
16070
16219
  if(type === 'pdb') {
16071
16220
  await ic.pdbParserCls.loadPdbData(data);
16072
16221
 
@@ -23068,7 +23217,7 @@ class Scene {
23068
23217
  ic.cam.remove( ic.canvasUI.mesh );
23069
23218
  }
23070
23219
 
23071
- if (controllerInfo !== undefined){
23220
+ if (controller && controllerInfo !== undefined){
23072
23221
  // "trigger":{"button":0},
23073
23222
  // "squeeze":{"button":1},
23074
23223
  // "thumbstick":{"button":3,"xAxis":2,"yAxis":3}, "touchpad":{"button":2,"xAxis":0,"yAxis":1},
@@ -23150,8 +23299,11 @@ class Scene {
23150
23299
  ic.cam.remove( ic.canvasUI.mesh );
23151
23300
  } },
23152
23301
  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() {
23153
- ic.setOptionCls.setStyle("proteins", "sphere");
23154
- ic.setOptionCls.setStyle("nucleotides", "sphere");
23302
+ // ic.setOptionCls.setStyle("proteins", "sphere");
23303
+ // ic.setOptionCls.setStyle("nucleotides", "sphere");
23304
+ ic.opts['surface'] = 'molecular surface';
23305
+ ic.applyMapCls.applySurfaceOptions();
23306
+
23155
23307
  ic.cam.remove( ic.canvasUI.mesh );
23156
23308
  } },
23157
23309
 
@@ -23217,14 +23369,17 @@ class Scene {
23217
23369
  //ic.canvasUILog.updateElement( "info", "ERROR: " + err );
23218
23370
  }
23219
23371
  } },
23220
- // 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() {
23221
- // ic.debugStr = '###ic.hAtoms: ' + Object.keys(ic.hAtoms).length + ' ic.dAtoms: ' + Object.keys(ic.dAtoms).length;
23222
- // let gsize = 65, salt = 0.15, contour = 2, bSurface = true;
23223
- // ic.delphiCls.CalcPhi(gsize, salt, contour, bSurface);
23224
- // ic.canvasUILog.updateElement( "info", "debug: " + ic.debugStr );
23225
- // ic.cam.remove( ic.canvasUI.mesh );
23226
- // } },
23227
- 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() {
23372
+ 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() {
23373
+ let gsize = 65, salt = 0.15, contour = 2, bSurface = true;
23374
+ ic.phisurftype = 22; // molecular surface
23375
+ ic.phisurfop = 1.0; // opacity
23376
+ ic.phisurfwf = 'no'; // wireframe
23377
+ await ic.delphiCls.CalcPhi(gsize, salt, contour, bSurface);
23378
+
23379
+ //ic.canvasUILog.updateElement( "info", "debug: " + ic.debugStr );
23380
+ ic.cam.remove( ic.canvasUI.mesh );
23381
+ } },
23382
+ 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() {
23228
23383
  for(let name in ic.labels) {
23229
23384
  //if(name === 'residue' || name === 'custom') {
23230
23385
  ic.labels[name] = [];
@@ -23234,7 +23389,7 @@ class Scene {
23234
23389
  ic.drawCls.draw();
23235
23390
  ic.cam.remove( ic.canvasUI.mesh );
23236
23391
  } },
23237
- 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() {
23392
+ 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() {
23238
23393
  ic.selectionCls.resetAll();
23239
23394
 
23240
23395
  ic.cam.remove( ic.canvasUI.mesh );
@@ -23254,7 +23409,8 @@ class Scene {
23254
23409
  ribbon: "Ribbon",
23255
23410
  schematic: "Schem.",
23256
23411
  stick: "Stick",
23257
- sphere: "Sphere",
23412
+ //sphere: "Sphere",
23413
+ sphere: "Surface",
23258
23414
 
23259
23415
  color: "Color",
23260
23416
  rainbow: "Rainbow",
@@ -23274,7 +23430,7 @@ class Scene {
23274
23430
 
23275
23431
  analysis: "Analysis",
23276
23432
  interaction: "Interact",
23277
- //delphi: "DelPhi",
23433
+ delphi: "DelPhi",
23278
23434
  removeLabel: "No Label",
23279
23435
  reset: "Reset"
23280
23436
  };
@@ -23325,6 +23481,8 @@ class Scene {
23325
23481
 
23326
23482
  for(let i=0; i<=1; i++){
23327
23483
  const controller = ic.renderer.xr.getController( i );
23484
+ if(!controller) continue;
23485
+
23328
23486
  ic.dolly.add( controller );
23329
23487
 
23330
23488
  controller.add( line.clone() );
@@ -26634,6 +26792,8 @@ class TextSprite {
26634
26792
  sprite.scale.set(expandWidthFactor * factor, factor, 1.0);
26635
26793
  }
26636
26794
 
26795
+ sprite.renderOrder = 1; // larger than the default 0
26796
+
26637
26797
  return sprite;
26638
26798
  }
26639
26799
 
@@ -29423,11 +29583,12 @@ class Surface {
29423
29583
  cfg.isovalue = ic.mapData.contourPhi;
29424
29584
  cfg.type = 'phi';
29425
29585
  cfg.loadPhiFrom = ic.loadPhiFrom;
29426
-
29586
+
29427
29587
  ps = this.SetupMap(cfg);
29428
29588
  }
29429
29589
  else {
29430
29590
  //1: van der waals surface, 2: molecular surface, 3: solvent accessible surface
29591
+
29431
29592
 
29432
29593
  //exclude water
29433
29594
  let atomsToShow = me.hashUtilsCls.exclHash(atoms, ic.water);
@@ -29461,7 +29622,7 @@ class Surface {
29461
29622
 
29462
29623
  ps = this.SetupSurface(cfg);
29463
29624
  }
29464
-
29625
+
29465
29626
  if(ic.bCalcArea) {
29466
29627
  ic.areavalue = ps.area.toFixed(2);
29467
29628
  let serial2area = ps.serial2area;
@@ -29540,7 +29701,7 @@ class Surface {
29540
29701
  //geo = new THREE.Geometry();
29541
29702
  geo = new THREE.BufferGeometry();
29542
29703
  let verticeArray = [], colorArray = [], indexArray = [], color;
29543
-
29704
+
29544
29705
  //var geoVertices = verts.map(function (v) {
29545
29706
  let offset = 0;
29546
29707
  for(let i = 0, il = verts.length; i < il; ++i, offset += 3) {
@@ -29615,9 +29776,8 @@ class Surface {
29615
29776
  //geo.normalsNeedUpdate = true;
29616
29777
 
29617
29778
  geo.computeVertexNormals();
29618
-
29779
+
29619
29780
  geo.type = 'Surface'; // to be recognized in vrml.js for 3D printing
29620
-
29621
29781
  // use the regular way to show transparency for type == 15 (surface with potential)
29622
29782
  // if(ic.transparentRenderOrder && (type == 1 || type == 2 || type == 3)) { // WebGL has some ordering problem when dealing with transparency
29623
29783
  if(ic.transparentRenderOrder) { // WebGL has some ordering problem when dealing with transparency
@@ -29805,7 +29965,7 @@ class Surface {
29805
29965
  mesh.renderOrder = -2; // default: 0, picking: -1
29806
29966
 
29807
29967
  ic.mdl.add(mesh);
29808
-
29968
+
29809
29969
  if(type == 11 || type == 12) {
29810
29970
  ic.prevMaps.push(mesh);
29811
29971
  }
@@ -29888,7 +30048,7 @@ class Surface {
29888
30048
 
29889
30049
  SetupMap(data) { let ic = this.icn3d; ic.icn3dui;
29890
30050
  let ps = new ElectronMap(ic);
29891
-
30051
+
29892
30052
  ps.initparm(data.header, data.data, data.matrix, data.isovalue, data.center, data.maxdist,
29893
30053
  data.pmin, data.pmax, data.water, data.type, data.rmsd_supr, data.loadPhiFrom, data.icn3d);
29894
30054
 
@@ -29897,7 +30057,7 @@ class Surface {
29897
30057
  if(!data.header.bSurface) ps.buildboundary();
29898
30058
 
29899
30059
  if(!data.header.bSurface) ps.marchingcube();
29900
-
30060
+
29901
30061
  ps.vpBits = null; // uint8 array of bitmasks
29902
30062
  //ps.vpDistance = null; // floatarray of _squared_ distances
29903
30063
  ps.vpAtomID = null; // intarray
@@ -31735,6 +31895,7 @@ class Impostor {
31735
31895
 
31736
31896
  setParametersForShader (opacity) { let ic = this.icn3d, me = ic.icn3dui;
31737
31897
  let background = me.parasCls.backgroundColors[ic.opts.background.toLowerCase()];
31898
+ if(!background) background = me.parasCls.thr(0x000000);
31738
31899
 
31739
31900
  let near = 2.5*ic.maxD;
31740
31901
  let far = 4*ic.maxD;
@@ -32921,10 +33082,10 @@ class Alternate {
32921
33082
 
32922
33083
  // show membranes
32923
33084
  if(ic.bOpm) {
32924
- //if(window.dialog) window.dialog.dialog( "close" );
33085
+ //if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
32925
33086
 
32926
33087
  let html = me.utilsCls.getMemDesc();
32927
- $("#" + ic.pre + "dl_rmsd").html(html);
33088
+ $("#" + ic.pre + "dl_rmsd_html").html(html);
32928
33089
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'Membranes');
32929
33090
  }
32930
33091
  }
@@ -33095,6 +33256,8 @@ class Alternate {
33095
33256
 
33096
33257
  for(let i = 0, il = ic.controllers.length; i < il; ++i) {
33097
33258
  let controller = ic.controllers[i];
33259
+ if(!controller) continue;
33260
+
33098
33261
  dt = (i % 2 == 0) ? dt : -dt; // dt * y;
33099
33262
  thisClass.handleController( controller, dt, controller.userData.selectPressed, controller.userData.squeezePressed, result.xArray, result.yArray );
33100
33263
  //thisClass.handleController( controller, dt, pressed );
@@ -33103,13 +33266,13 @@ class Alternate {
33103
33266
 
33104
33267
  if ( ic.renderer.xr.isPresenting){
33105
33268
  if(ic.canvasUI) ic.canvasUI.update();
33106
- //if(ic.canvasUILog) ic.canvasUILog.update();
33269
+ if(ic.canvasUILog) ic.canvasUILog.update();
33107
33270
  }
33108
33271
  }
33109
33272
  else if(ic.bAr) {
33110
33273
  if ( ic.renderer.xr.isPresenting ){
33111
33274
  ic.gestures.update();
33112
- //if(ic.canvasUILog) ic.canvasUILog.update();
33275
+ if(ic.canvasUILog) ic.canvasUILog.update();
33113
33276
  }
33114
33277
  }
33115
33278
 
@@ -35305,22 +35468,28 @@ class SetColor {
35305
35468
 
35306
35469
  case 'ig strand':
35307
35470
  if(ic.bShowRefnum) {
35308
- for(let resid in ic.resid2refnum) {
35309
- let refnumLabel = ic.resid2refnum[resid];
35310
- let color;
35311
- if(!refnumLabel) {
35312
- color = me.parasCls.thr(me.htmlCls.GREYB);
35471
+ let color;
35472
+ for(let resid in ic.residues) {
35473
+ if(!ic.resid2refnum[resid]) {
35474
+ color = me.parasCls.thr('#FFFFFF');
35313
35475
  }
35314
35476
  else {
35315
- let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
35316
- let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
35317
- color = ic.showSeqCls.getRefnumColor(currStrand);
35318
-
35319
- if(ic.residIgLoop.hasOwnProperty(resid)) {
35477
+ let refnumLabel = ic.resid2refnum[resid];
35478
+
35479
+ if(!refnumLabel) {
35320
35480
  color = me.parasCls.thr(me.htmlCls.GREYB);
35321
35481
  }
35482
+ else {
35483
+ let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
35484
+ let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
35485
+ color = ic.showSeqCls.getRefnumColor(currStrand);
35486
+
35487
+ if(ic.residIgLoop.hasOwnProperty(resid)) {
35488
+ color = me.parasCls.thr(me.htmlCls.GREYB);
35489
+ }
35490
+ }
35322
35491
  }
35323
-
35492
+
35324
35493
  for (let i in ic.residues[resid]) {
35325
35494
  let atom = ic.atoms[i];
35326
35495
  atom.color = me.parasCls.thr(color);
@@ -35334,20 +35503,26 @@ class SetColor {
35334
35503
 
35335
35504
  case 'ig protodomain':
35336
35505
  if(ic.bShowRefnum) {
35337
- for(let resid in ic.resid2refnum) {
35338
- let refnumLabel = ic.resid2refnum[resid];
35339
- let color;
35340
- if(!refnumLabel) {
35341
- color = me.parasCls.thr(me.htmlCls.GREYB);
35506
+ let color;
35507
+ for(let resid in ic.residues) {
35508
+ if(!ic.resid2refnum[resid]) {
35509
+ color = me.parasCls.thr('#FFFFFF');
35342
35510
  }
35343
35511
  else {
35344
- let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
35345
- let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
35346
- color = ic.showSeqCls.getProtodomainColor(currStrand);
35512
+ let refnumLabel = ic.resid2refnum[resid];
35347
35513
 
35348
- if(ic.residIgLoop.hasOwnProperty(resid)) {
35514
+ if(!refnumLabel) {
35349
35515
  color = me.parasCls.thr(me.htmlCls.GREYB);
35350
35516
  }
35517
+ else {
35518
+ let refnumStr = refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').substr(1); // C', C''
35519
+ let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
35520
+ color = ic.showSeqCls.getProtodomainColor(currStrand);
35521
+
35522
+ if(ic.residIgLoop.hasOwnProperty(resid)) {
35523
+ color = me.parasCls.thr(me.htmlCls.GREYB);
35524
+ }
35525
+ }
35351
35526
  }
35352
35527
 
35353
35528
  for (let i in ic.residues[resid]) {
@@ -36125,11 +36300,13 @@ class SetOption {
36125
36300
  bClose = true;
36126
36301
  }
36127
36302
 
36128
- $("#" + me.pre + "dl_legend").html(html);
36129
- me.htmlCls.dialogCls.openDlg('dl_legend', 'Color Legend');
36303
+ if(html) {
36304
+ $("#" + me.pre + "dl_legend_html").html(html);
36305
+ me.htmlCls.dialogCls.openDlg('dl_legend', 'Color Legend');
36306
+ }
36130
36307
 
36131
36308
  if(bClose) {
36132
- if(window.dialog) window.dialog.dialog( "close" );
36309
+ if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
36133
36310
  }
36134
36311
  }
36135
36312
 
@@ -36291,7 +36468,7 @@ class SetOption {
36291
36468
  "C' Strand": "6495ED",
36292
36469
  "C'' Strand": "006400",
36293
36470
  "D Strand": "00FF00",
36294
- "E Strand": "F7DC6F", //"F0E68C",
36471
+ "E Strand": "FFFF00", //"F0E68C",
36295
36472
  "F Strand": "FFA500",
36296
36473
  "G Strand": "FF0000",
36297
36474
  "G* Strand": "8B0000",
@@ -36318,12 +36495,12 @@ class SetOption {
36318
36495
  const name2color = {
36319
36496
  "A Strand": "0000FF",
36320
36497
  "B Strand": "006400",
36321
- "C Strand": "F7DC6F", //"F0E68C",
36498
+ "C Strand": "FFFF00", //"F0E68C",
36322
36499
  "C' Strand": "FFA500",
36323
36500
  "C'' Strand": "FF0000",
36324
36501
  "D Strand": "0000FF",
36325
36502
  "E Strand": "006400",
36326
- "F Strand": "F7DC6F", //"F0E68C",
36503
+ "F Strand": "FFFF00", //"F0E68C",
36327
36504
  "G Strand": "FFA500",
36328
36505
  "Loop": "CCCCCC"
36329
36506
  };
@@ -38543,6 +38720,7 @@ class Domain3d {
38543
38720
  this.icn3d = icn3d;
38544
38721
 
38545
38722
  //this.dcut = 8; // threshold for C-alpha interactions
38723
+
38546
38724
  // It seemed the threshold 7 angstrom works better
38547
38725
  this.dcut = 7; // threshold for C-alpha interactions
38548
38726
 
@@ -38578,6 +38756,9 @@ class Domain3d {
38578
38756
  this.c_delta = 3; // cut set parameter
38579
38757
  this.nc_fact = 0.0; // size factor for internal contacts
38580
38758
 
38759
+ // added by Jiyao
38760
+ this.min_contacts = 10; // minimum number of contacts to be considered as neighbors
38761
+
38581
38762
  //let this.elements[2*this.MAX_SSE]; // sets of this.elements to be split
38582
38763
  this.elements = [];
38583
38764
  this.elements.length = 2*this.MAX_SSE;
@@ -39126,6 +39307,7 @@ class Domain3d {
39126
39307
  //https://www.geeksforgeeks.org/number-groups-formed-graph-friends/
39127
39308
  countUtil(ss1, sheetNeighbor, existing_groups) {
39128
39309
  this.visited[ss1] = true;
39310
+
39129
39311
  if(!this.groupnum2sheet[existing_groups]) this.groupnum2sheet[existing_groups] = [];
39130
39312
  this.groupnum2sheet[existing_groups].push(parseInt(ss1));
39131
39313
 
@@ -39169,6 +39351,7 @@ class Domain3d {
39169
39351
  let chnid = residueArray[0].substr(0, residueArray[0].lastIndexOf('_'));
39170
39352
 
39171
39353
  let substructItem = {};
39354
+ let pos2resi = {};
39172
39355
  for(let i = 0; i < residueArray.length; ++i) {
39173
39356
  let resid = residueArray[i];
39174
39357
 
@@ -39206,22 +39389,26 @@ class Domain3d {
39206
39389
  x0.push(atom.coord.x);
39207
39390
  y0.push(atom.coord.y);
39208
39391
  z0.push(atom.coord.z);
39209
- resiArray.push(resi);
39392
+ //resiArray.push(resi);
39393
+ resiArray.push(i+1);
39394
+ pos2resi[i+1] = resi;
39210
39395
 
39211
39396
  if(atom.ssend) {
39212
- substructItem.To = parseInt(resi);
39397
+ //substructItem.To = parseInt(resi);
39398
+ substructItem.To = i + 1;
39213
39399
  substructItem.x2 = atom.coord.x;
39214
39400
  substructItem.y2 = atom.coord.y;
39215
39401
  substructItem.z2 = atom.coord.z;
39216
39402
 
39217
39403
  substructItem.Sheet = (atom.ss == 'sheet') ? true : false;
39218
39404
  substruct.push(substructItem);
39219
- substructItem = {};
39405
+ substructItem = {};
39220
39406
  }
39221
39407
 
39222
39408
  // a residue could be both start and end. check ssend first, then check ssbegin
39223
39409
  if(atom.ssbegin) {
39224
- substructItem.From = parseInt(resi);
39410
+ //substructItem.From = parseInt(resi);
39411
+ substructItem.From = i + 1;
39225
39412
  substructItem.x1 = atom.coord.x;
39226
39413
  substructItem.y1 = atom.coord.y;
39227
39414
  substructItem.z1 = atom.coord.z;
@@ -39241,7 +39428,8 @@ class Domain3d {
39241
39428
  }
39242
39429
 
39243
39430
  let seqLen = residueArray.length; // + resiOffset;
39244
- let lastResi = resiArray[seqLen - 1];
39431
+ //let lastResi = resiArray[seqLen - 1];
39432
+ let lastResi = seqLen;
39245
39433
 
39246
39434
  // get a list of Calpha-Calpha contacts
39247
39435
  ///list< pair< pair< int, let >, let > >
@@ -39320,7 +39508,8 @@ class Domain3d {
39320
39508
  let ss2 = parseInt(ssPair[1]);
39321
39509
 
39322
39510
  // both are sheets
39323
- if(substruct[ss1 - 1].Sheet && substruct[ss2 - 1].Sheet) {
39511
+ // min number of contacts: this.min_contacts
39512
+ if(substruct[ss1 - 1].Sheet && substruct[ss2 - 1].Sheet && ctable[pair] >= this.min_contacts ) {
39324
39513
  if(!sheetNeighbor[ss1]) sheetNeighbor[ss1] = {};
39325
39514
  if(!sheetNeighbor[ss2]) sheetNeighbor[ss2] = {};
39326
39515
 
@@ -39343,13 +39532,13 @@ class Domain3d {
39343
39532
  // If not in any group.
39344
39533
  if (this.visited[ss1] == false) {
39345
39534
  existing_groups++;
39346
-
39535
+
39347
39536
  this.countUtil(ss1, sheetNeighbor, existing_groups);
39348
39537
  }
39349
39538
  }
39350
39539
 
39351
39540
  // get sheet2sheetnum
39352
- // each neighboring sheet willbe represented by the sheet with the smallest sse
39541
+ // each neighboring sheet will be represented by the sheet with the smallest sse
39353
39542
  for(let groupnum in this.groupnum2sheet) {
39354
39543
  let ssArray = this.groupnum2sheet[groupnum].sort();
39355
39544
  for(let i = 0, il = ssArray.length; i < il; ++i) {
@@ -39452,7 +39641,7 @@ class Domain3d {
39452
39641
  this.parts[2*i] = this.parts[2*i + 1] = 0;
39453
39642
  ratios[i] = 0.0;
39454
39643
  }
39455
-
39644
+
39456
39645
  n_saved = this.new_split_chain(nsse, sratio, minSize, minSSE, maxCsz, avgCts, cDelta, ncFact, this.parts, n_saved, ratios);
39457
39646
 
39458
39647
  // save domain data
@@ -39493,14 +39682,14 @@ class Domain3d {
39493
39682
  //resflags.clear();
39494
39683
 
39495
39684
  //let resflags = [];
39496
- let resflags = {};
39685
+ let resflags = {}; // keys are 1-based positions
39497
39686
 
39498
39687
  // a domain must have at least 3 SSEs...
39499
39688
  if (prts.length <= 2) continue;
39500
39689
 
39501
39690
  for (let i = 0; i < seqLen; i++) {
39502
39691
  //resflags.push(0);
39503
- resflags[resiArray[i]] = 0;
39692
+ resflags[i + 1] = 0;
39504
39693
  }
39505
39694
 
39506
39695
  for (let i = 0; i < prts.length; i++) {
@@ -39516,17 +39705,14 @@ class Domain3d {
39516
39705
  let To = sserec.To;
39517
39706
 
39518
39707
  for (let j = From; j <= To; j++) {
39519
- //resflags[j - 1] = 1;
39520
39708
  resflags[j] = 1;
39521
39709
  }
39522
39710
 
39523
39711
  if ((k == 0) && (From > 1)) {
39524
39712
  // residues with negative residue numbers will not be included
39525
39713
  for (let j = 1; j < From; j++) {
39526
- //resflags[j - 1] = 1;
39527
39714
  // include at most 10 residues
39528
39715
  if(From - j <= 10) {
39529
- //resflags[j - 1] = 1;
39530
39716
  resflags[j] = 1;
39531
39717
  }
39532
39718
  }
@@ -39536,10 +39722,8 @@ class Domain3d {
39536
39722
  if ((k == substruct.length - 1) && (To < parseInt(lastResi))) {
39537
39723
  //for (let j = To + 1; j <= seqLen; j++) {
39538
39724
  for (let j = To + 1; j <= parseInt(lastResi); j++) {
39539
- //resflags[j - 1] = 1;
39540
39725
  // include at most 10 residues
39541
39726
  if(j - To <= 10) {
39542
- //resflags[j - 1] = 1;
39543
39727
  resflags[j] = 1;
39544
39728
  }
39545
39729
  }
@@ -39555,7 +39739,6 @@ class Domain3d {
39555
39739
 
39556
39740
  if (ll > 0) {
39557
39741
  for (let j = From - ll; j <= From - 1; j++) {
39558
- //resflags[j - 1] = 1;
39559
39742
  resflags[j] = 1;
39560
39743
  }
39561
39744
  }
@@ -39574,7 +39757,6 @@ class Domain3d {
39574
39757
 
39575
39758
  if (ll > 0) {
39576
39759
  for (let j = To + 1; j <= To + ll; j++) {
39577
- //resflags[j - 1] = 1;
39578
39760
  resflags[j] = 1;
39579
39761
  }
39580
39762
  }
@@ -39586,16 +39768,15 @@ class Domain3d {
39586
39768
  let startseg;
39587
39769
  //vector<int> segments;
39588
39770
  //segments.clear();
39589
- let segments = [];
39771
+ let segments = []; //use position instead of residue number
39590
39772
 
39591
39773
  for (let i = 0; i < seqLen; i++) {
39592
39774
  //let rf = resflags[i];
39593
- let rf = resflags[resiArray[i]];
39775
+ let rf = resflags[i + 1];
39594
39776
 
39595
39777
  if (!inseg && (rf == 1)) {
39596
39778
  // new segment starts here
39597
- //startseg = i + 1;
39598
- startseg = resiArray[i];
39779
+ startseg = i + 1;
39599
39780
  inseg = true;
39600
39781
  continue;
39601
39782
  }
@@ -39603,8 +39784,7 @@ class Domain3d {
39603
39784
  if (inseg && (rf == 0)) {
39604
39785
  // segment ends
39605
39786
  segments.push(startseg);
39606
- //segments.push(i);
39607
- segments.push(resiArray[i]);
39787
+ segments.push(i);
39608
39788
  inseg = false;
39609
39789
  }
39610
39790
  }
@@ -39612,7 +39792,6 @@ class Domain3d {
39612
39792
  // check for the last segment
39613
39793
  if (inseg) {
39614
39794
  segments.push(startseg);
39615
- //segments.push(seqLen);
39616
39795
  segments.push(lastResi);
39617
39796
  }
39618
39797
 
@@ -39633,8 +39812,8 @@ class Domain3d {
39633
39812
  }
39634
39813
  }
39635
39814
  }
39636
-
39637
- return {subdomains: subdomains, substruct: substruct};
39815
+
39816
+ return {subdomains: subdomains, substruct: substruct, pos2resi:pos2resi };
39638
39817
  } // end c2b_NewSplitChain
39639
39818
 
39640
39819
  getDomainJsonForAlign(atoms) { let ic = this.icn3d, me = ic.icn3dui;
@@ -39642,6 +39821,7 @@ class Domain3d {
39642
39821
 
39643
39822
  let subdomains = result.subdomains;
39644
39823
  let substruct = result.substruct;
39824
+ let pos2resi = result.pos2resi;
39645
39825
 
39646
39826
  let residueHash = ic.firstAtomObjCls.getResiduesFromAtoms(atoms);
39647
39827
  let residueArray = Object.keys(residueHash);
@@ -39669,8 +39849,8 @@ class Domain3d {
39669
39849
  //ss: sstype ss_start ss_end x1 y1 z1 x2 y2 z2
39670
39850
  //sstype: 1 (helix), 2 (sheet)
39671
39851
  let sstype = (substruct[k].Sheet) ? 2 : 1;
39672
- let from = substruct[k].From;
39673
- let to = substruct[k].To;
39852
+ let from = pos2resi[substruct[k].From];
39853
+ let to = pos2resi[substruct[k].To];
39674
39854
 
39675
39855
  let residFrom = chnid + "_" + from;
39676
39856
  let atomFrom = ic.firstAtomObjCls.getFirstCalphaAtomObj(ic.residues[residFrom]);
@@ -40687,7 +40867,7 @@ class AddTrack {
40687
40867
  let legendHtml = me.htmlCls.clickMenuCls.setLegendHtml();
40688
40868
 
40689
40869
  //$("#" + me.pre + "legend").html(legendHtml);
40690
- $("#" + me.pre + "dl_legend").html(legendHtml);
40870
+ $("#" + me.pre + "dl_legend_html").html(legendHtml);
40691
40871
  me.htmlCls.dialogCls.openDlg('dl_legend', 'Color range');
40692
40872
  }
40693
40873
  else if(type == 'tube') {
@@ -42532,7 +42712,7 @@ class ShowSeq {
42532
42712
  let strand2len_start_stop = {};
42533
42713
  let prevRefnumStr, prevPostfix, prevRefnum;
42534
42714
 
42535
- // sometimes one chain may have several Ig domains,set a index for each IgDomain
42715
+ // sometimes one chain may have several Ig domains,set an index for each IgDomain
42536
42716
  let index = 1, prevStrandPostfix = '', bStart = false;
42537
42717
  for(let i = 0, il = giSeq.length; i < il; ++i) {
42538
42718
  let currResi = ic.ParserUtilsCls.getResi(chnid, i);
@@ -42743,7 +42923,7 @@ class ShowSeq {
42743
42923
  }
42744
42924
  else {
42745
42925
  let refnum = parseInt(refnumStr).toString();
42746
- let color = this.getRefnumColor(currStrand);
42926
+ let color = this.getRefnumColor(currStrand, true);
42747
42927
  let colorStr = 'style="color:' + color + '"';
42748
42928
 
42749
42929
  let lastTwo = parseInt(refnum.substr(refnum.length - 2, 2));
@@ -42914,7 +43094,7 @@ class ShowSeq {
42914
43094
 
42915
43095
  getRefnumHtml(residueid, refnumStr, refnumStr_ori, refnumLabel, currStrand, bLoop, bHidelabel) { let ic = this.icn3d, me = ic.icn3dui;
42916
43096
  let refnum = parseInt(refnumStr).toString();
42917
- let color = this.getRefnumColor(currStrand);
43097
+ let color = this.getRefnumColor(currStrand, true);
42918
43098
  let colorStr = (!bLoop) ? 'style="color:' + color + '; text-decoration: underline overline;"' : 'style="color:' + color + '"';
42919
43099
 
42920
43100
  let lastTwo = parseInt(refnum.substr(refnum.length - 2, 2));
@@ -42940,45 +43120,45 @@ class ShowSeq {
42940
43120
  return html;
42941
43121
  }
42942
43122
 
42943
- getRefnumColor(currStrand) { let ic = this.icn3d, me = ic.icn3dui;
42944
- if(currStrand == "A^") { //magenta // deep sky blue
42945
- return '#FF00FF'; //'#9900ff'; //'#00BFFF';
43123
+ getRefnumColor(currStrand, bText) { let ic = this.icn3d, me = ic.icn3dui;
43124
+ if(currStrand == "A^") {
43125
+ return '#FF00FF';
42946
43126
  }
42947
- else if(currStrand == "A") { //rebecca purple // blue
42948
- return '#663399'; //'#9900ff'; //'#0000FF';
43127
+ else if(currStrand == "A") {
43128
+ return '#663399';
42949
43129
  }
42950
- else if(currStrand == "A*") { //pink // sky blue
42951
- return '#FFC0CB'; //'#9900ff'; //'#87CEEB';
43130
+ else if(currStrand == "A*") {
43131
+ return '#FFC0CB';
42952
43132
  }
42953
- else if(currStrand == "A'") { //medium purple // steel blue
42954
- return '#663399'; //'#9370db'; //'#9900ff'; //'#4682B4';
43133
+ else if(currStrand == "A'") {
43134
+ return '#663399';
42955
43135
  }
42956
- else if(currStrand == "B") { //medium orchid // cyan
42957
- return '#ba55d3'; //'#0000FF'; //'#4a86e8'; //'#00FFFF';
43136
+ else if(currStrand == "B") {
43137
+ return '#ba55d3';
42958
43138
  }
42959
- else if(currStrand == "C") { //blue // green
42960
- return '#0000FF'; //'#76d6ff'; //'#00FF00';
43139
+ else if(currStrand == "C") {
43140
+ return '#0000FF';
42961
43141
  }
42962
- else if(currStrand == "C'") { //corn blue // yellow
42963
- return '#6495ED'; //'#006400'; //'#00b050'; //'#FFFF00';
43142
+ else if(currStrand == "C'") {
43143
+ return '#6495ED';
42964
43144
  }
42965
- else if(currStrand == "C''") { //dark green // orange
42966
- return '#006400'; //'#00ff00'; //'#FFA500';
43145
+ else if(currStrand == "C''") {
43146
+ return '#006400';
42967
43147
  }
42968
- else if(currStrand == "D") { //green // brown
42969
- return '#00FF00'; //'#fffb00'; //'#A52A2A';
43148
+ else if(currStrand == "D") {
43149
+ return '#00FF00';
42970
43150
  }
42971
- else if(currStrand == "E") { //yellow // pink
42972
- return "#F7DC6F"; //'#F0E68C'; //'#ff9900'; //'#ffd966'; //'#FFC0CB';
43151
+ else if(currStrand == "E") {
43152
+ return (bText) ? "#F7DC6F" : "#FFFF00";
42973
43153
  }
42974
- else if(currStrand == "F") { //orange // magenta
42975
- return '#FFA500'; //'#FF00FF'; //'#ff9900'; //'#FF00FF';
43154
+ else if(currStrand == "F") {
43155
+ return '#FFA500';
42976
43156
  }
42977
- else if(currStrand == "G") { //red // red
42978
- return '#FF0000'; //'#ff2600'; //'#FF0000';
43157
+ else if(currStrand == "G") {
43158
+ return '#FF0000';
42979
43159
  }
42980
- else if(currStrand == "G*") { //dark red // salmon
42981
- return '#8B0000'; //'#ff2600'; //'#FA8072';
43160
+ else if(currStrand == "G*") {
43161
+ return '#8B0000';
42982
43162
  }
42983
43163
  else {
42984
43164
  return me.htmlCls.GREYB;
@@ -42993,7 +43173,7 @@ class ShowSeq {
42993
43173
  return '#006400';
42994
43174
  }
42995
43175
  else if(currStrand == "C" || currStrand == "F") {
42996
- return "#F7DC6F"; //'#F0E68C';
43176
+ return "#FFFF00"; //'#F0E68C';
42997
43177
  }
42998
43178
  else if(currStrand == "C'" || (currStrand && currStrand.substr(0, 1) == "G")) {
42999
43179
  return '#FFA500';
@@ -43577,7 +43757,7 @@ class HlUpdate {
43577
43757
  html2ddgm += ic.diagram2dCls.draw2Ddgm(ic.interactionData, ic.inputid, undefined, true);
43578
43758
  html2ddgm += ic.diagram2dCls.set2DdgmNote();
43579
43759
 
43580
- $("#" + ic.pre + "dl_2ddgm").html(html2ddgm);
43760
+ $("#" + ic.pre + "dl_2ddgm_html").html(html2ddgm);
43581
43761
  }
43582
43762
  else if(ic.mmdbidArray &&(me.cfg.align !== undefined || me.cfg.chainalign !== undefined || ic.bRealign)) {
43583
43763
  html2ddgm += ic.diagram2dCls.draw2Ddgm(ic.interactionData1, ic.mmdbidArray[0].toUpperCase(), 0, true);
@@ -43589,7 +43769,7 @@ class HlUpdate {
43589
43769
  }
43590
43770
  html2ddgm += ic.diagram2dCls.set2DdgmNote(true);
43591
43771
 
43592
- $("#" + ic.pre + "dl_2ddgm").html(html2ddgm);
43772
+ $("#" + ic.pre + "dl_2ddgm_html").html(html2ddgm);
43593
43773
  }
43594
43774
  }
43595
43775
 
@@ -44126,8 +44306,8 @@ class LineGraph {
44126
44306
  linkedNodeCnt[mappingid] = 1;
44127
44307
  linkedNodeInterDiff[mappingid] = link.n;
44128
44308
  }
44129
- else {
44130
- ++linkedNodeCnt[mappingid];
44309
+ else {
44310
+ ++linkedNodeCnt[mappingid];
44131
44311
  linkedNodeInterDiff[mappingid] -= link.n; // show difference
44132
44312
  }
44133
44313
  }
@@ -44477,9 +44657,9 @@ class LineGraph {
44477
44657
  if(pos1 === undefined || pos2 === undefined) continue;
44478
44658
  let linestrokewidth;
44479
44659
  if(link.v == me.htmlCls.contactValue) {
44480
- linestrokewidth = 1;
44660
+ linestrokewidth = (link.n == 1) ? 1 : 3;
44481
44661
  } else {
44482
- linestrokewidth = 2;
44662
+ linestrokewidth = (link.n == 1) ? 2 : 4;
44483
44663
  }
44484
44664
  let strokecolor;
44485
44665
  if(link.v == me.htmlCls.hbondValue) {
@@ -44496,8 +44676,9 @@ class LineGraph {
44496
44676
  strokecolor = "#" + me.htmlCls.contactColor;
44497
44677
  }
44498
44678
  html += "<g class='icn3d-interaction' resid1='" + resid1 + "' resid2='" + resid2 + "' >";
44499
- html += "<title>Interaction of residue " + node1.id + " with residue " + node2.id + "</title>";
44500
- html += "<line x1='" + pos1.x + "' y1='" + pos1.y + "' x2='" + pos2.x + "' y2='" + pos2.y + "' stroke='" + strokecolor + "' stroke-width='" + linestrokewidth + "' /></g>";
44679
+ let interactStr = (link.n == 1) ? 'Interaction' : link.n + ' interactions';
44680
+ if(link.n > 1) html += "<title>" + interactStr + " of residue " + node1.id + " with residue " + node2.id + "</title>";
44681
+ html += "<line x1='" + pos1.x + "' y1='" + pos1.y + "' x2='" + pos2.x + "' y2='" + pos2.y + "' stroke='" + strokecolor + "' stroke-width='" + linestrokewidth + "'/></g>";
44501
44682
  }
44502
44683
  // show nodes later
44503
44684
  html += nodeHtml;
@@ -44590,9 +44771,9 @@ class LineGraph {
44590
44771
 
44591
44772
  let linestrokewidth;
44592
44773
  if(link.v == me.htmlCls.contactValue) {
44593
- linestrokewidth = 1;
44774
+ linestrokewidth = (link.n == 1) ? 1 : 3;
44594
44775
  } else {
44595
- linestrokewidth = 2;
44776
+ linestrokewidth = (link.n == 1) ? 2 : 4;
44596
44777
  }
44597
44778
 
44598
44779
  if(bAfMap && ic.hex2skip[link.c]) ;
@@ -44607,7 +44788,8 @@ class LineGraph {
44607
44788
  }
44608
44789
  else {
44609
44790
  html += "<g class='icn3d-interaction' resid1='" + resid1 + "' resid2='" + resid2 + "' >";
44610
- html += "<title>Interaction of residue " + node1.id + " with residue " + node2.id + "</title>";
44791
+ let interactStr = (link.n == 1) ? 'Interaction' : link.n + ' interactions';
44792
+ if(link.n > 1) html += "<title>" + interactStr + " of residue " + node1.id + " with residue " + node2.id + "</title>";
44611
44793
  if(bContactMap) {
44612
44794
  html += "<rect x='" +(pos2.x - halfSize).toString() + "' y='" +(pos1.y - halfSize).toString() + "' width='" + rectSize + "' height='" + rectSize + "' fill='" + strokecolor + "' stroke-width='" + linestrokewidth + "' stroke='" + strokecolor + "' />";
44613
44795
  }
@@ -45123,11 +45305,9 @@ class GetGraph {
45123
45305
 
45124
45306
  if(!linkstr2cnt.hasOwnProperty(linkStr)) {
45125
45307
  linkstr2cnt[linkStr] = 1;
45126
- linkstr2cnt[linkStr] = 1;
45127
45308
  }
45128
45309
  else {
45129
- linkstr2cnt[linkStr] += 1;
45130
- linkstr2cnt[linkStr] += 1;
45310
+ ++linkstr2cnt[linkStr];
45131
45311
  }
45132
45312
  }
45133
45313
  }
@@ -45851,11 +46031,11 @@ class ViewInterPairs {
45851
46031
  html += result.html;
45852
46032
  bondCnt = result.bondCnt;
45853
46033
 
45854
- $("#" + ic.pre + "dl_interactionsorted").html(html);
46034
+ $("#" + ic.pre + "dl_interactionsorted_html").html(html);
45855
46035
  me.htmlCls.dialogCls.openDlg('dl_interactionsorted', 'Show sorted interactions');
45856
46036
  }
45857
46037
  else if(type == 'view') {
45858
- $("#" + ic.pre + "dl_allinteraction").html(html);
46038
+ $("#" + ic.pre + "dl_allinteraction_html").html(html);
45859
46039
  me.htmlCls.dialogCls.openDlg('dl_allinteraction', 'Show interactions');
45860
46040
  }
45861
46041
  else if(type == 'linegraph') {
@@ -48183,7 +48363,7 @@ class ChainalignParser {
48183
48363
  me.htmlCls.clickMenuCls.setLogCmd(logStr, false);
48184
48364
  let html = "<br><b>Alignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br>";
48185
48365
  if(me.cfg.aligntool == 'tmalign') html += "<b>TM-score</b>: " + align[0].score.toPrecision(4) + "<br><br>";
48186
- $("#" + ic.pre + "dl_rmsd").html(html);
48366
+ $("#" + ic.pre + "dl_rmsd_html").html(html);
48187
48367
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'RMSD of alignment');
48188
48368
 
48189
48369
  bAligned = true;
@@ -52446,10 +52626,10 @@ class ParserUtils {
52446
52626
  me.htmlCls.clickMenuCls.setLogCmd("realignment RMSD: " + rmsd.toPrecision(4), false);
52447
52627
  let html = "<br><b>Realignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>";
52448
52628
  if(ic.bAfMem) {
52449
- //if(window.dialog) window.dialog.dialog( "close" );
52629
+ //if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
52450
52630
  html += me.utilsCls.getMemDesc();
52451
52631
  }
52452
- $("#" + ic.pre + "dl_rmsd").html(html);
52632
+ $("#" + ic.pre + "dl_rmsd_html").html(html);
52453
52633
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'Realignment RMSD');
52454
52634
  }
52455
52635
 
@@ -52630,7 +52810,7 @@ class ParserUtils {
52630
52810
  ic.diagram2dCls.draw2Ddgm(ic.interactionData2, mmdbid2, 1);
52631
52811
 
52632
52812
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote(true);
52633
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
52813
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
52634
52814
 
52635
52815
  ic.b2DShown = true;
52636
52816
 
@@ -52683,7 +52863,7 @@ class ParserUtils {
52683
52863
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote(true);
52684
52864
 
52685
52865
  ic.b2DShown = true;
52686
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
52866
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
52687
52867
  if(me.cfg.show2d) me.htmlCls.dialogCls.openDlg('dl_2ddgm', 'Interactions');
52688
52868
 
52689
52869
  /// if(ic.deferredViewinteraction !== undefined) ic.deferredViewinteraction.resolve();
@@ -52701,7 +52881,7 @@ class ParserUtils {
52701
52881
  ic.diagram2dCls.draw2Ddgm(ic.interactionData, mmdbid);
52702
52882
 
52703
52883
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote();
52704
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
52884
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
52705
52885
  }
52706
52886
 
52707
52887
  ic.b2DShown = true;
@@ -52804,7 +52984,7 @@ class ParserUtils {
52804
52984
  let rmsd = ic.rmsd_supr.rmsd;
52805
52985
 
52806
52986
  me.htmlCls.clickMenuCls.setLogCmd("RMSD of alignment to OPM: " + rmsd.toPrecision(4), false);
52807
- //$("#" + ic.pre + "dl_rmsd").html("<br><b>RMSD of alignment to OPM</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
52987
+ //$("#" + ic.pre + "dl_rmsd_html").html("<br><b>RMSD of alignment to OPM</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
52808
52988
  //if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'RMSD of alignment to OPM');
52809
52989
 
52810
52990
  let dxymaxsq = 0;
@@ -53010,6 +53190,16 @@ class ParserUtils {
53010
53190
 
53011
53191
  // set defined sets before loadScript
53012
53192
  if(ic.bInitial) {
53193
+ if(me.cfg.mobilemenu) {
53194
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
53195
+ let bNoSave = true;
53196
+ me.htmlCls.clickMenuCls.applyShownMenus(bNoSave);
53197
+ }
53198
+ // else {
53199
+ // me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
53200
+ // me.htmlCls.clickMenuCls.applyShownMenus();
53201
+ // }
53202
+
53013
53203
  if(me.cfg.showsets) {
53014
53204
  ic.definedSetsCls.showSets();
53015
53205
  }
@@ -56450,7 +56640,7 @@ class Vastplus {
56450
56640
  bAligned = true;
56451
56641
 
56452
56642
  me.htmlCls.clickMenuCls.setLogCmd("realignment RMSD: " + rmsd.toPrecision(4), false);
56453
- $("#" + ic.pre + "dl_rmsd").html("<br><b>Realignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
56643
+ $("#" + ic.pre + "dl_rmsd_html").html("<br><b>Realignment RMSD</b>: " + rmsd.toPrecision(4) + " &#8491;<br><br>");
56454
56644
  if(!me.cfg.bSidebyside) me.htmlCls.dialogCls.openDlg('dl_rmsd', 'Realignment RMSD');
56455
56645
 
56456
56646
  // apply matrix for each atom
@@ -58396,7 +58586,7 @@ class ApplyCommand {
58396
58586
 
58397
58587
  let legendHtml = me.htmlCls.clickMenuCls.setLegendHtml();
58398
58588
  //$("#" + me.pre + "legend").html(legendHtml).show();
58399
- $("#" + me.pre + "dl_legend").html(legendHtml);
58589
+ $("#" + me.pre + "dl_legend_html").html(legendHtml);
58400
58590
  me.htmlCls.dialogCls.openDlg('dl_legend', 'Color Range');
58401
58591
  }
58402
58592
  }
@@ -61912,7 +62102,7 @@ class Delphi {
61912
62102
  let phidata = await this.CalcPhiPrms(gsize, salt, contour, bSurface, data);
61913
62103
 
61914
62104
  this.loadPhiData(phidata, contour, bSurface);
61915
-
62105
+
61916
62106
  ic.bAjaxPhi = true;
61917
62107
 
61918
62108
  if(bSurface) {
@@ -62676,8 +62866,8 @@ class Dssp {
62676
62866
 
62677
62867
  // align each 3D domain with reference structure
62678
62868
  let result = ic.domain3dCls.c2b_NewSplitChain(ic.chains[chainid]);
62679
- let subdomains = result.subdomains;
62680
-
62869
+ let subdomains = result.subdomains;
62870
+
62681
62871
  let domainAtomsArray = [];
62682
62872
  if(subdomains.length <= 1) {
62683
62873
  domainAtomsArray.push(ic.chains[chainid]);
@@ -62696,7 +62886,8 @@ class Dssp {
62696
62886
  let startResi = segArray[m];
62697
62887
  let endResi = segArray[m+1];
62698
62888
  for(let n = parseInt(startResi); n <= parseInt(endResi); ++n) {
62699
- let resid = chainid + '_' + n;
62889
+ let residNCBI = chainid + '_' + n;
62890
+ let resid = ic.ncbi2resid[residNCBI];
62700
62891
  domainAtoms = me.hashUtilsCls.unionHash(domainAtoms, ic.residues[resid]);
62701
62892
  ic.resid2domainid[resid] = chainid + '-' + k;
62702
62893
  }
@@ -62707,9 +62898,9 @@ class Dssp {
62707
62898
  }
62708
62899
 
62709
62900
  for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
62710
-
62711
62901
  let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
62712
62902
  let domainid = chainid + '-' + k;
62903
+
62713
62904
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
62714
62905
  let struct2 = ic.defaultPdbId + index;
62715
62906
  let pdb_query = dataArray[index].value; //[0];
@@ -62930,7 +63121,7 @@ if(!me.bNode) {
62930
63121
  else if(refnum >= 1200 && refnum < 1300) return "A'" + oriRefnum;
62931
63122
  else if(refnum >= 1300 && refnum < 1400) return "A*" + oriRefnum;
62932
63123
  else if(refnum >= 1400 && refnum < 2000) {
62933
- if(prevStrand.substr(0, 1) == 'A') {
63124
+ if(prevStrand && prevStrand.substr(0, 1) == 'A') {
62934
63125
  return prevStrand + oriRefnum;
62935
63126
  }
62936
63127
  else {
@@ -64299,7 +64490,7 @@ class Analysis {
64299
64490
  //html += '<b>Buried Surface for both Sets</b>: ' + buriedArea + ' &#8491;<sup>2</sup><br>';
64300
64491
  html += '<b>Buried Surface for Set 1</b>: ' + buriedArea2 + ' &#8491;<sup>2</sup><br>';
64301
64492
  html += '<b>Buried Surface for Set 2</b>: ' + buriedArea1 + ' &#8491;<sup>2</sup><br><br>';
64302
- $("#" + ic.pre + "dl_buriedarea").html(html);
64493
+ $("#" + ic.pre + "dl_buriedarea_html").html(html);
64303
64494
  me.htmlCls.dialogCls.openDlg('dl_buriedarea', 'Buried solvent accessible surface area in the interface');
64304
64495
  me.htmlCls.clickMenuCls.setLogCmd('buried surface ' + buriedArea, false);
64305
64496
  }
@@ -64405,7 +64596,7 @@ class Analysis {
64405
64596
 
64406
64597
  tableHtml += '</table><br><br>';
64407
64598
 
64408
- $("#" + me.pre + "dl_disttable").html(tableHtml);
64599
+ $("#" + me.pre + "dl_disttable_html").html(tableHtml);
64409
64600
  }
64410
64601
  }
64411
64602
 
@@ -64962,7 +65153,7 @@ class Diagram2d {
64962
65153
 
64963
65154
  ic.html2ddgm += html;
64964
65155
 
64965
- $("#" + ic.pre + "dl_2ddgm").html(ic.html2ddgm);
65156
+ $("#" + ic.pre + "dl_2ddgm_html").html(ic.html2ddgm);
64966
65157
 
64967
65158
  return html;
64968
65159
  }
@@ -67707,6 +67898,7 @@ class ShareLink {
67707
67898
  //file (the comand history) is concatenated in the URL to show the current state.
67708
67899
  async shareLink(bPngHtml, bPngOnly) { let ic = this.icn3d, me = ic.icn3dui;
67709
67900
  let url = this.shareLinkUrl();
67901
+
67710
67902
  let bTooLong =(url.length > 4000 || url.indexOf('http') !== 0) ? true : false;
67711
67903
  if(bPngHtml) url += "&random=" + parseInt(Math.random() * 1000); // generate a new shorten URL and thus image name everytime
67712
67904
  //var inputid =(ic.inputid) ? ic.inputid : "custom";
@@ -67738,40 +67930,53 @@ class ShareLink {
67738
67930
  }
67739
67931
  }
67740
67932
 
67741
- let data = await this.getShareLinkPrms(url, bPngHtml);
67742
-
67743
67933
  let shorturl = 'Problem in getting shortened URL';
67744
- if(data.shortLink !== undefined) {
67745
- shorturl = data.shortLink;
67746
- if(bPngHtml) { // save png and corresponding html
67747
- let strArray = shorturl.split("/");
67748
- let shortName = strArray[strArray.length - 1];
67749
- ic.saveFileCls.saveFile(inputid + '-' + shortName + '.png', 'png');
67750
- let text = '<div style="float:left; border: solid 1px #0000ff; padding: 5px; margin: 10px; text-align:center;">';
67751
- text += '<a href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + shortName + '" target="_blank">';
67752
- text += '<img style="height:300px" src ="' + inputid + '-' + shortName + '.png"><br>\n';
67753
- text += '<!--Start of your comments==================-->\n';
67754
- let yournote =(ic.yournote) ? ': ' + ic.yournote.replace(/\n/g, "<br>").replace(/; /g, ", ") : '';
67755
- text += 'PDB ' + inputid.toUpperCase() + yournote + '\n';
67756
- text += '<!--End of your comments====================-->\n';
67757
- text += '</a>';
67758
- text += '</div>\n\n';
67759
- ic.saveFileCls.saveFile(inputid + '-' + shortName + '.html', 'html', text);
67760
- }
67761
- }
67762
- if(bPngHtml && data.shortLink === undefined) {
67763
- ic.saveFileCls.saveFile(inputid + '_icn3d_loadable.png', 'png');
67764
- }
67765
- //shorturl: https://icn3d.page.link/NvbAh1Vmiwc4bgX87
67766
- let urlArray = shorturl.split('page.link/');
67767
- //if(urlArray.length == 2) shorturl = me.htmlCls.baseUrl + 'icn3d/share.html?' + urlArray[1];
67768
- // When the baseURL is structure.ncbi.nlm.nih.gov, mmcifparser.cgi has a problem to past posted data in Mac/iphone
67769
- // So the base URL is still www.ncbi.nlm.nih.gov/Structure,just use short URL here
67770
- if(urlArray.length == 2) shorturl = 'https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + urlArray[1];
67934
+
67935
+ if(!me.cfg.notebook) {
67936
+ let data = await this.getShareLinkPrms(url, bPngHtml);
67937
+
67938
+ if(data.shortLink !== undefined) {
67939
+ shorturl = data.shortLink;
67940
+ if(bPngHtml) { // save png and corresponding html
67941
+ let strArray = shorturl.split("/");
67942
+ let shortName = strArray[strArray.length - 1];
67943
+ ic.saveFileCls.saveFile(inputid + '-' + shortName + '.png', 'png');
67944
+ let text = '<div style="float:left; border: solid 1px #0000ff; padding: 5px; margin: 10px; text-align:center;">';
67945
+ text += '<a href="https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + shortName + '" target="_blank">';
67946
+ text += '<img style="height:300px" src ="' + inputid + '-' + shortName + '.png"><br>\n';
67947
+ text += '<!--Start of your comments==================-->\n';
67948
+ let yournote =(ic.yournote) ? ': ' + ic.yournote.replace(/\n/g, "<br>").replace(/; /g, ", ") : '';
67949
+ text += 'PDB ' + inputid.toUpperCase() + yournote + '\n';
67950
+ text += '<!--End of your comments====================-->\n';
67951
+ text += '</a>';
67952
+ text += '</div>\n\n';
67953
+ ic.saveFileCls.saveFile(inputid + '-' + shortName + '.html', 'html', text);
67954
+ }
67955
+ }
67956
+
67957
+ if(bPngHtml && data.shortLink === undefined) {
67958
+ ic.saveFileCls.saveFile(inputid + '_icn3d_loadable.png', 'png');
67959
+ }
67960
+
67961
+ //shorturl: https://icn3d.page.link/NvbAh1Vmiwc4bgX87
67962
+ let urlArray = shorturl.split('page.link/');
67963
+ //if(urlArray.length == 2) shorturl = me.htmlCls.baseUrl + 'icn3d/share.html?' + urlArray[1];
67964
+ // When the baseURL is structure.ncbi.nlm.nih.gov, mmcifparser.cgi has a problem to past posted data in Mac/iphone
67965
+ // So the base URL is still www.ncbi.nlm.nih.gov/Structure,just use short URL here
67966
+ if(urlArray.length == 2) shorturl = 'https://structure.ncbi.nlm.nih.gov/icn3d/share.html?' + urlArray[1];
67967
+
67968
+ $("#" + ic.pre + "short_url").val(shorturl);
67969
+ $("#" + ic.pre + "short_url_title").val(shorturl + '&t=' + ic.yournote);
67970
+ }
67971
+
67972
+ let outputCmd = this.shareLinkUrl(undefined, true);
67973
+ let idStr = (me.cfg.url) ? "url=" + me.cfg.url : "mmdbafid=" + ic.inputid;
67974
+ let jnCmd = "view = icn3dpy.view(q='" + idStr + "',command='" + outputCmd + "')\nview";
67975
+ $("#" + ic.pre + "jn_commands").val(jnCmd);
67976
+
67771
67977
  $("#" + ic.pre + "ori_url").val(url);
67772
- $("#" + ic.pre + "short_url").val(shorturl);
67773
- $("#" + ic.pre + "short_url_title").val(shorturl + '&t=' + ic.yournote);
67774
- if(!bPngHtml) me.htmlCls.dialogCls.openDlg('dl_copyurl', 'Copy a Share Link URL');
67978
+
67979
+ if(!bPngHtml) me.htmlCls.dialogCls.openDlg('dl_copyurl', 'Copy a Share Link URL or Jupyter Notebook Commands');
67775
67980
  }
67776
67981
 
67777
67982
  getShareLinkPrms(url, bPngHtml) { let ic = this.icn3d, me = ic.icn3dui;
@@ -67800,8 +68005,9 @@ class ShareLink {
67800
68005
  });
67801
68006
  }
67802
68007
 
67803
- shareLinkUrl(bAllCommands) { let ic = this.icn3d, me = ic.icn3dui;
68008
+ shareLinkUrl(bAllCommands, bOutputCmd) { let ic = this.icn3d, me = ic.icn3dui;
67804
68009
  let url = me.htmlCls.baseUrl + "icn3d/full.html?";
68010
+ let outputCmd = '';
67805
68011
  if(me.cfg.bSidebyside) url = me.htmlCls.baseUrl + "icn3d/full2.html?";
67806
68012
 
67807
68013
  if(ic.bInputUrlfile) {
@@ -67904,8 +68110,13 @@ class ShareLink {
67904
68110
 
67905
68111
  url += 'command=';
67906
68112
 
67907
- //let start =(inparaWithoutCommand !== undefined) ? 1 : 0;
67908
- let start = 0;
68113
+ let start;
68114
+ if(me.cfg.notebook) {
68115
+ start =(inparaWithoutCommand !== undefined) ? 1 : 0;
68116
+ }
68117
+ else {
68118
+ start = 0;
68119
+ }
67909
68120
 
67910
68121
  if(bAllCommands || ic.bInputUrlfile) start = 0;
67911
68122
 
@@ -67971,17 +68182,18 @@ class ShareLink {
67971
68182
  prevCommandStr = commandStr;
67972
68183
  }
67973
68184
 
67974
- url += tmpUrl;
67975
-
67976
68185
  // last command
67977
68186
  if(prevCommandStr) {
67978
- if(tmpUrl) url += '; ';
67979
- if(cntToggle > 0 && cntToggle %2 == 0 && prevCommandStr !== toggleStr) url += toggleStr + '; ';
68187
+ if(tmpUrl) tmpUrl += '; ';
68188
+ if(cntToggle > 0 && cntToggle %2 == 0 && prevCommandStr !== toggleStr) tmpUrl += toggleStr + '; ';
67980
68189
 
67981
- url += prevCommandStr + '|||' + ic.transformCls.getTransformationStr(transformation);
68190
+ tmpUrl += prevCommandStr + '|||' + ic.transformCls.getTransformationStr(transformation);
67982
68191
  statefile += prevCommandStr + '|||' + ic.transformCls.getTransformationStr(transformation) + '\n';
67983
68192
  }
67984
68193
 
68194
+ url += tmpUrl;
68195
+ outputCmd = tmpUrl;
68196
+
67985
68197
  statefile = statefile.replace(/!/g, Object.keys(ic.structures)[0] + '_');
67986
68198
  if((ic.bInputfile && !ic.bInputUrlfile) || (ic.bInputUrlfile && ic.bAppend) || url.length > 4000) url = statefile;
67987
68199
  let id;
@@ -67994,7 +68206,7 @@ class ShareLink {
67994
68206
  url = url.replace(new RegExp('blast_rep_id=!','g'), 'blast_rep_id=' + id + '_');
67995
68207
  }
67996
68208
 
67997
- return url;
68209
+ return (bOutputCmd) ? outputCmd : url;
67998
68210
  }
67999
68211
 
68000
68212
  getPngText() { let ic = this.icn3d; ic.icn3dui;
@@ -70847,7 +71059,7 @@ class iCn3DUI {
70847
71059
  //even when multiple iCn3D viewers are shown together.
70848
71060
  this.pre = this.cfg.divid + "_";
70849
71061
 
70850
- this.REVISION = '3.23.2';
71062
+ this.REVISION = '3.24.0';
70851
71063
 
70852
71064
  // In nodejs, iCn3D defines "window = {navigator: {}}"
70853
71065
  this.bNode = (Object.keys(window).length < 2) ? true : false;
@@ -71238,7 +71450,7 @@ iCn3DUI.prototype.show3DStructure = async function(pdbStr) { let me = this;
71238
71450
 
71239
71451
  ic.loadCmd = 'load alignment ' + me.cfg.align + ' | parameters ' + me.cfg.inpara;
71240
71452
  me.htmlCls.clickMenuCls.setLogCmd(ic.loadCmd, true);
71241
- if(me.cfg.inpara.indexOf('atype=2') == -1) {
71453
+ if(me.cfg.inpara && me.cfg.inpara.indexOf('atype=2') == -1) {
71242
71454
  await ic.alignParserCls.downloadAlignment(me.cfg.align);
71243
71455
  }
71244
71456
  else {