icn3d 3.19.3 → 3.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/icn3d.js CHANGED
@@ -22958,13 +22958,18 @@ class PdbParser {
22958
22958
  //Ajax call was used to get the atom data from the "pdbid". This function was deferred so that
22959
22959
  //it can be chained together with other deferred functions for sequential execution. A wrapper
22960
22960
  //was added to support both http and https.
22961
- downloadPdb(pdbid, bAf) { let ic = this.icn3d; ic.icn3dui;
22961
+ downloadPdb(pdbid, bAf) { let ic = this.icn3d, me = ic.icn3dui;
22962
22962
  ic.deferredOpm = $.Deferred(function() {
22963
22963
  let url, dataType;
22964
22964
 
22965
22965
  if(bAf) {
22966
22966
  url = "https://alphafold.ebi.ac.uk/files/AF-" + pdbid + "-F1-model_" + ic.AFUniprotVersion + ".pdb";
22967
- ic.ParserUtilsCls.setYourNote(pdbid.toUpperCase() + '(AlphaFold) in iCn3D');
22967
+ if(me.cfg.refseqid) {
22968
+ ic.ParserUtilsCls.setYourNote(me.cfg.refseqid.toUpperCase() + '(RefSeq) in iCn3D');
22969
+ }
22970
+ else {
22971
+ ic.ParserUtilsCls.setYourNote(pdbid.toUpperCase() + '(AlphaFold) in iCn3D');
22972
+ }
22968
22973
  }
22969
22974
  else {
22970
22975
  url = "https://files.rcsb.org/view/" + pdbid + ".pdb";
@@ -24610,15 +24615,15 @@ class MmdbParser {
24610
24615
  }
24611
24616
  }
24612
24617
 
24613
- downloadUniprotid(uniprotid) { let ic = this.icn3d; ic.icn3dui;
24618
+ downloadRefseq(refseqid) { let ic = this.icn3d, me = ic.icn3dui;
24614
24619
  // get gis
24615
- let url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=protein&retmode=json&id=" + uniprotid;
24620
+ let url = me.htmlCls.baseUrl + "vastdyn/vastdyn.cgi?refseq2uniprot=" + refseqid;
24616
24621
 
24617
24622
  ic.bCid = undefined;
24618
24623
 
24619
24624
  $.ajax({
24620
24625
  url: url,
24621
- dataType: 'json',
24626
+ dataType: 'jsonp',
24622
24627
  cache: true,
24623
24628
  tryCount : 0,
24624
24629
  retryLimit : 0, //1
@@ -24629,10 +24634,12 @@ class MmdbParser {
24629
24634
  //ic.ParserUtilsCls.hideLoading();
24630
24635
  },
24631
24636
  success: function(data) {
24632
- let giArray = data.result.uids;
24637
+ me.cfg.afid = data.uniprot;
24633
24638
 
24634
- let redirectUrl = "https://www.ncbi.nlm.nih.gov/structure?linkname=protein_structure&from_uid=" + giArray.join(',');
24635
- window.open(redirectUrl, '_self');
24639
+ let bAf = true;
24640
+ $.when(ic.pdbParserCls.downloadPdb(me.cfg.afid, bAf)).then(function() {
24641
+ ic.loadScriptCls.loadScript(me.cfg.command, undefined, true);
24642
+ });
24636
24643
  },
24637
24644
  error : function(xhr, textStatus, errorThrown ) {
24638
24645
  this.tryCount++;
@@ -28551,6 +28558,14 @@ class LoadScript {
28551
28558
  me.cfg.gi = id;
28552
28559
  ic.mmdbParserCls.downloadGi(id);
28553
28560
  }
28561
+ else if(command.indexOf('load refseq') !== -1) {
28562
+ me.cfg.refseqid = id;
28563
+ ic.mmdbParserCls.downloadRefseq(id);
28564
+ }
28565
+ // else if(command.indexOf('load proteinname') !== -1) {
28566
+ // me.cfg.proteinname = id;
28567
+ // ic.mmdbParserCls.downloadProteinname(id);
28568
+ // }
28554
28569
  else if(command.indexOf('load seq_struct_ids ') !== -1) {
28555
28570
  ic.bSmithwm = false;
28556
28571
  ic.bLocalSmithwm = false;
@@ -29029,6 +29044,7 @@ class LoadScript {
29029
29044
  if(ic.bTransparentSurface && ic.bRender) ic.drawCls.render();
29030
29045
 
29031
29046
  if(me.deferred !== undefined) me.deferred.resolve(); if(ic.deferred2 !== undefined) ic.deferred2.resolve();
29047
+ if(me.deferredMmdbaf !== undefined) me.deferredMmdbaf.resolve();
29032
29048
  }
29033
29049
 
29034
29050
  replayFirstStep(currentNumber) { let ic = this.icn3d, me = ic.icn3dui;
@@ -29249,7 +29265,7 @@ class ResizeCanvas {
29249
29265
  //let itemArray = ['dl_selectannotations', 'dl_alignment', 'dl_2ddgm', 'dl_definedsets', 'dl_graph',
29250
29266
  // 'dl_linegraph', 'dl_scatterplot', 'dl_contactmap', 'dl_allinteraction', 'dl_copyurl',
29251
29267
  // 'dl_symmetry', 'dl_symd', 'dl_rmsd', 'dl_legend', 'dl_disttable'];
29252
- let itemArray = ['dl_2ddgm', 'dl_2dctn', 'dl_alignment', 'dl_sequence2', 'dl_definedsets', 'dl_setsmenu', 'dl_command', 'dl_setoperations', 'dl_vast', 'dl_foldseek', 'dl_mmtfid', 'dl_pdbid', 'dl_afid', 'dl_opmid', 'dl_pdbfile', 'dl_pdbfile_app', 'dl_rescolorfile', 'dl_customcolor', 'dl_align', 'dl_alignaf', 'dl_chainalign', 'dl_chainalign2', 'dl_chainalign3', 'dl_mutation', 'dl_mol2file', 'dl_sdffile', 'dl_xyzfile', 'dl_afmapfile', 'dl_urlfile', 'dl_mmciffile', 'dl_mmcifid', 'dl_mmdbid', 'dl_mmdbafid', 'dl_blast_rep_id', 'dl_yournote', 'dl_gi', 'dl_uniprotid', 'dl_cid', 'dl_pngimage', 'dl_state', 'dl_fixedversion', 'dl_selection', 'dl_dsn6', 'dl_dsn6url', 'dl_clr', 'dl_symmetry', 'dl_symd', 'dl_contact', 'dl_hbonds', 'dl_realign', 'dl_realignbystruct', 'dl_allinteraction', 'dl_interactionsorted', 'dl_linegraph', 'dl_linegraphcolor', 'dl_scatterplot', 'dl_scatterplotcolor', 'dl_contactmap', 'dl_alignerrormap', 'dl_elecmap2fofc', 'dl_elecmapfofc', 'dl_emmap', 'dl_aroundsphere', 'dl_adjustmem', 'dl_selectplane', 'dl_addlabel', 'dl_addlabelselection', 'dl_labelColor', 'dl_distance', 'dl_stabilizer', 'dl_disttwosets', 'dl_distmanysets', 'dl_stabilizer_rm', 'dl_thickness', 'dl_thickness2', 'dl_addtrack', 'dl_addtrack_tabs', 'dl_saveselection', 'dl_copyurl', 'dl_selectannotations', 'dl_annotations_tabs', 'dl_anno_view_tabs', 'dl_annotations', 'dl_graph', 'dl_svgcolor', 'dl_area', 'dl_colorbyarea', 'dl_rmsd', 'dl_buriedarea', 'dl_propbypercentout', 'dl_propbybfactor', 'dl_legend', 'dl_disttable'];
29268
+ let itemArray = ['dl_2ddgm', 'dl_2dctn', 'dl_alignment', 'dl_sequence2', 'dl_definedsets', 'dl_setsmenu', 'dl_command', 'dl_setoperations', 'dl_vast', 'dl_foldseek', 'dl_mmtfid', 'dl_pdbid', 'dl_afid', 'dl_opmid', 'dl_pdbfile', 'dl_pdbfile_app', 'dl_rescolorfile', 'dl_customcolor', 'dl_align', 'dl_alignaf', 'dl_chainalign', 'dl_chainalign2', 'dl_chainalign3', 'dl_mutation', 'dl_mol2file', 'dl_sdffile', 'dl_xyzfile', 'dl_afmapfile', 'dl_urlfile', 'dl_mmciffile', 'dl_mmcifid', 'dl_mmdbid', 'dl_mmdbafid', 'dl_blast_rep_id', 'dl_yournote', 'dl_gi', 'dl_refseqid', 'dl_cid', 'dl_pngimage', 'dl_state', 'dl_fixedversion', 'dl_selection', 'dl_dsn6', 'dl_dsn6url', 'dl_clr', 'dl_symmetry', 'dl_symd', 'dl_contact', 'dl_hbonds', 'dl_realign', 'dl_realignbystruct', 'dl_allinteracton', 'dl_interactionsorted', 'dl_linegraph', 'dl_linegraphcolor', 'dl_scatterplot', 'dl_scatterploitcolor', 'dl_contactmap', 'dl_alignerrormap', 'dl_elecmap2fofc', 'dl_elecmapfofc', 'dl_emmap', 'dl_aroundsphere', 'dl_adjustmem', 'dl_selectplane', 'dl_addlabel', 'dl_addlabelselection', 'dl_labelColor', 'dl_distance', 'dl_stabilizer', 'dl_disttwosets', 'dl_distmanysets', 'dl_stabilizer_rm', 'dl_thickness', 'dl_thickness2', 'dl_addtrack', 'dl_addtrack_tabs', 'dl_saveselection', 'dl_copyurl', 'dl_selectannotations', 'dl_annotations_tabs', 'dl_anno_view_tabs', 'dl_annotations', 'dl_graph', 'dl_svgcolor', 'dl_area', 'dl_colorbyarea', 'dl_rmsd', 'dl_buriedarea', 'dl_propbypercentout', 'dl_propbybfactor', 'dl_legend', 'dl_disttable'];
29253
29269
 
29254
29270
  for(let i in itemArray) {
29255
29271
  let item = itemArray[i];
@@ -29738,7 +29754,7 @@ class Domain3d {
29738
29754
  //list< pair< pair< int, let >, let > >
29739
29755
  //c2b_AlphaContacts(let n0, let* x0, let* y0, let* z0,
29740
29756
  // const let incr = 4, const let dcut = 8.0) { let ic = this.icn3d, me = ic.icn3dui;
29741
- c2b_AlphaContacts(n0, x0, y0, z0, dcut) { let ic = this.icn3d; ic.icn3dui;
29757
+ c2b_AlphaContacts(n0, x0, y0, z0, dcut, resiArray) { let ic = this.icn3d; ic.icn3dui;
29742
29758
  //if(!incr) incr = 4;
29743
29759
  if(!dcut) dcut = this.dcut;
29744
29760
 
@@ -29752,7 +29768,8 @@ class Domain3d {
29752
29768
 
29753
29769
  //ResRec rr0;
29754
29770
  let rr0 = {};
29755
- rr0.rnum = i + 1;
29771
+ //rr0.rnum = i + 1;
29772
+ rr0.rnum = resiArray[i];
29756
29773
  rr0.x = x0[i];
29757
29774
  rr0.y = y0[i];
29758
29775
  rr0.z = z0[i];
@@ -29780,7 +29797,7 @@ class Domain3d {
29780
29797
  for (j = i + 1; j < len; ++j) {
29781
29798
  //ResRec rr2 = *rrit2;
29782
29799
  let rr2 = list_rr[j];
29783
- if ((rr1.rnum - rr2.rnum <= 3) && (rr2.rnum - rr1.rnum <= 3)) continue;
29800
+ if ((parseInt(rr1.rnum) - parseInt(rr2.rnum) <= 3) && (parseInt(rr2.rnum) - parseInt(rr1.rnum) <= 3)) continue;
29784
29801
  let x2 = rr2.x;
29785
29802
  let y2 = rr2.y;
29786
29803
  let z2 = rr2.z;
@@ -29798,7 +29815,7 @@ class Domain3d {
29798
29815
  //pair< int, let > rpair;
29799
29816
  let lpair = {}, rpair = {};
29800
29817
 
29801
- if (rr1.rnum < rr2.rnum) {
29818
+ if (parseInt(rr1.rnum) < parseInt(rr2.rnum)) {
29802
29819
  rpair.first = rr1.rnum;
29803
29820
  rpair.second = rr2.rnum;
29804
29821
  }
@@ -29888,7 +29905,7 @@ class Domain3d {
29888
29905
  // x0, y0, z0: array of x,y,z coordinates of C-alpha atoms
29889
29906
  //c2b_NewSplitChain(chnid, dcut) { let ic = this.icn3d, me = ic.icn3dui;
29890
29907
  c2b_NewSplitChain(atoms, dcut) { let ic = this.icn3d; ic.icn3dui;
29891
- let x0 = [], y0 = [], z0 = [];
29908
+ let x0 = [], y0 = [], z0 = [], resiArray = [];
29892
29909
 
29893
29910
  //substruct: array of secondary structures, each of which has the keys: From (1-based), To (1-based), Sheet (0 or 1), also add these paras: x1, y1, z1, x2, y2, z2
29894
29911
  let substruct = [];
@@ -29903,11 +29920,11 @@ class Domain3d {
29903
29920
  residueArray[0].substr(0, residueArray[0].lastIndexOf('_'));
29904
29921
 
29905
29922
  let substructItem = {};
29906
- let resiOffset = 0;
29907
29923
  for(let i = 0; i < residueArray.length; ++i) {
29908
29924
  let resid = residueArray[i];
29909
29925
 
29910
29926
  let resi = resid.substr(resid.lastIndexOf('_') + 1);
29927
+ /*
29911
29928
  if(i == 0) {
29912
29929
  resiOffset = resi - 1;
29913
29930
 
@@ -29917,10 +29934,13 @@ class Domain3d {
29917
29934
  z0.push(undefined);
29918
29935
  }
29919
29936
  }
29937
+ */
29920
29938
 
29921
29939
  //let resid = chnid + "_" + resi;
29922
29940
  let atom = ic.firstAtomObjCls.getFirstCalphaAtomObj(ic.residues[resid]);
29923
29941
 
29942
+ if(!atom) continue;
29943
+ /*
29924
29944
  if(atom) {
29925
29945
  x0.push(atom.coord.x);
29926
29946
  y0.push(atom.coord.y);
@@ -29931,8 +29951,13 @@ class Domain3d {
29931
29951
  y0.push(undefined);
29932
29952
  z0.push(undefined);
29933
29953
  }
29934
-
29935
- if(!atom) continue;
29954
+ */
29955
+ //if(!atom) continue;
29956
+
29957
+ x0.push(atom.coord.x);
29958
+ y0.push(atom.coord.y);
29959
+ z0.push(atom.coord.z);
29960
+ resiArray.push(resi);
29936
29961
 
29937
29962
  if(atom.ssend) {
29938
29963
  substructItem.To = parseInt(resi);
@@ -29966,12 +29991,13 @@ class Domain3d {
29966
29991
  return {subdomains: subdomains, substruct: substruct};
29967
29992
  }
29968
29993
 
29969
- let seqLen = residueArray.length + resiOffset;
29994
+ let seqLen = residueArray.length; // + resiOffset;
29995
+ let lastResi = resiArray[seqLen - 1];
29970
29996
 
29971
29997
  // get a list of Calpha-Calpha contacts
29972
29998
  ///list< pair< pair< int, let >, let > >
29973
- let cts = this.c2b_AlphaContacts(seqLen, x0, y0, z0, dcut);
29974
-
29999
+ let cts = this.c2b_AlphaContacts(seqLen, x0, y0, z0, dcut, resiArray);
30000
+
29975
30001
  //
29976
30002
  // Produce a "map" of the SSEs, i.e. vec_sse[i] = 0 means residue i + 1
29977
30003
  // is in a loop, and vec_sse[i] = k means residue i + 1 belongs to SSE
@@ -30216,13 +30242,17 @@ class Domain3d {
30216
30242
  let prts = list_parts[index];
30217
30243
  //vector<int> resflags;
30218
30244
  //resflags.clear();
30219
- let resflags = [];
30245
+
30246
+ //let resflags = [];
30247
+ let resflags = {};
30220
30248
 
30221
30249
  // a domain must have at least 3 SSEs...
30222
30250
  if (prts.length <= 2) continue;
30223
30251
 
30224
- for (let i = 0; i < seqLen; i++)
30225
- resflags.push(0);
30252
+ for (let i = 0; i < seqLen; i++) {
30253
+ //resflags.push(0);
30254
+ resflags[resiArray[i]] = 0;
30255
+ }
30226
30256
 
30227
30257
  for (let i = 0; i < prts.length; i++) {
30228
30258
  let k = prts[i] - 1;
@@ -30236,8 +30266,10 @@ class Domain3d {
30236
30266
  let From = sserec.From;
30237
30267
  let To = sserec.To;
30238
30268
 
30239
- for (let j = From; j <= To; j++)
30240
- resflags[j - 1] = 1;
30269
+ for (let j = From; j <= To; j++) {
30270
+ //resflags[j - 1] = 1;
30271
+ resflags[j] = 1;
30272
+ }
30241
30273
 
30242
30274
  if ((k == 0) && (From > 1)) {
30243
30275
  // residues with negative residue numbers will not be included
@@ -30245,17 +30277,21 @@ class Domain3d {
30245
30277
  //resflags[j - 1] = 1;
30246
30278
  // include at most 10 residues
30247
30279
  if(From - j <= 10) {
30248
- resflags[j - 1] = 1;
30280
+ //resflags[j - 1] = 1;
30281
+ resflags[j] = 1;
30249
30282
  }
30250
30283
  }
30251
30284
  }
30252
30285
 
30253
- if ((k == substruct.length - 1) && (To < seqLen)) {
30254
- for (let j = To + 1; j <= seqLen; j++) {
30286
+ //if ((k == substruct.length - 1) && (To < seqLen)) {
30287
+ if ((k == substruct.length - 1) && (To < parseInt(lastResi))) {
30288
+ //for (let j = To + 1; j <= seqLen; j++) {
30289
+ for (let j = To + 1; j <= parseInt(lastResi); j++) {
30255
30290
  //resflags[j - 1] = 1;
30256
30291
  // include at most 10 residues
30257
30292
  if(j - To <= 10) {
30258
- resflags[j - 1] = 1;
30293
+ //resflags[j - 1] = 1;
30294
+ resflags[j] = 1;
30259
30295
  }
30260
30296
  }
30261
30297
  }
@@ -30269,8 +30305,10 @@ class Domain3d {
30269
30305
  let ll = parseInt(0.5 * (From - To1 - 1));
30270
30306
 
30271
30307
  if (ll > 0) {
30272
- for (let j = From - ll; j <= From - 1; j++)
30273
- resflags[j - 1] = 1;
30308
+ for (let j = From - ll; j <= From - 1; j++) {
30309
+ //resflags[j - 1] = 1;
30310
+ resflags[j] = 1;
30311
+ }
30274
30312
  }
30275
30313
  }
30276
30314
 
@@ -30286,8 +30324,10 @@ class Domain3d {
30286
30324
  let ll = parseInt(0.5 * (From1 - To - 1) + 0.5);
30287
30325
 
30288
30326
  if (ll > 0) {
30289
- for (let j = To + 1; j <= To + ll; j++)
30290
- resflags[j - 1] = 1;
30327
+ for (let j = To + 1; j <= To + ll; j++) {
30328
+ //resflags[j - 1] = 1;
30329
+ resflags[j] = 1;
30330
+ }
30291
30331
  }
30292
30332
  }
30293
30333
  }
@@ -30300,11 +30340,13 @@ class Domain3d {
30300
30340
  let segments = [];
30301
30341
 
30302
30342
  for (let i = 0; i < seqLen; i++) {
30303
- let rf = resflags[i];
30343
+ //let rf = resflags[i];
30344
+ let rf = resflags[resiArray[i]];
30304
30345
 
30305
30346
  if (!inseg && (rf == 1)) {
30306
30347
  // new segment starts here
30307
- startseg = i + 1;
30348
+ //startseg = i + 1;
30349
+ startseg = resiArray[i];
30308
30350
  inseg = true;
30309
30351
  continue;
30310
30352
  }
@@ -30312,7 +30354,8 @@ class Domain3d {
30312
30354
  if (inseg && (rf == 0)) {
30313
30355
  // segment ends
30314
30356
  segments.push(startseg);
30315
- segments.push(i);
30357
+ //segments.push(i);
30358
+ segments.push(resiArray[i]);
30316
30359
  inseg = false;
30317
30360
  }
30318
30361
  }
@@ -30320,7 +30363,8 @@ class Domain3d {
30320
30363
  // check for the last segment
30321
30364
  if (inseg) {
30322
30365
  segments.push(startseg);
30323
- segments.push(seqLen);
30366
+ //segments.push(seqLen);
30367
+ segments.push(lastResi);
30324
30368
  }
30325
30369
 
30326
30370
  subdomains.push(segments);
@@ -34423,7 +34467,8 @@ class ApplyCommand {
34423
34467
  let paraArray = command.split(' | ');
34424
34468
  let url = paraArray[1];
34425
34469
 
34426
- window.open(url, '_blank');
34470
+ let urlTarget = '_blank';
34471
+ window.open(url, urlTarget);
34427
34472
  }
34428
34473
  else if(commandOri.indexOf('your note') == 0) {
34429
34474
  let paraArray = commandOri.split(' | ');
@@ -37710,7 +37755,7 @@ class ParserUtils {
37710
37755
  ic.selectionCls.saveSelectionIfSelected();
37711
37756
  ic.drawCls.draw();
37712
37757
  }
37713
-
37758
+
37714
37759
  // if(ic.bInitial && me.cfg.command !== undefined && me.cfg.command !== '') {
37715
37760
  if(!ic.bCommandLoad && ic.bInitial && me.cfg.command !== undefined && me.cfg.command !== '') {
37716
37761
  if(Object.keys(ic.structures).length == 1) {
@@ -37718,11 +37763,13 @@ class ParserUtils {
37718
37763
  me.cfg.command = me.cfg.command.replace(new RegExp('!','g'), id + '_');
37719
37764
  }
37720
37765
  // final step resolved ic.deferred
37721
- if(me.cfg.mmdbafid === undefined && me.cfg.afid === undefined) ic.loadScriptCls.loadScript(me.cfg.command, undefined, true);
37766
+ //if(me.cfg.mmdbafid === undefined && me.cfg.afid === undefined) ic.loadScriptCls.loadScript(me.cfg.command, undefined, true);
37767
+ ic.loadScriptCls.loadScript(me.cfg.command, undefined, true);
37722
37768
  //ic.loadScriptCls.loadScript(me.cfg.command);
37723
37769
  }
37724
37770
  else {
37725
37771
  if(me.deferred !== undefined) me.deferred.resolve(); if(ic.deferred2 !== undefined) ic.deferred2.resolve();
37772
+ if(me.deferredMmdbaf !== undefined) me.deferredMmdbaf.resolve();
37726
37773
  }
37727
37774
  //if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined || ic.bRealign ||( ic.bInputfile && ic.InputfileType == 'pdb' && Object.keys(ic.structures).length >= 2) ) {
37728
37775
  if(Object.keys(ic.structures).length >= 2) {
@@ -54551,13 +54598,14 @@ class SaveFile {
54551
54598
  }
54552
54599
  }
54553
54600
 
54554
- setStructureTitle(url, title, titlelinkColor) {var ic = this.icn3d; ic.icn3dui;
54601
+ setStructureTitle(url, title, titlelinkColor) {var ic = this.icn3d, me = ic.icn3dui;
54555
54602
  if(ic.molTitle.length > 40) title = ic.molTitle.substr(0, 40) + "...";
54556
54603
 
54557
54604
  //var asymmetricStr =(ic.bAssemblyUseAsu) ? "(Asymmetric Unit)" : "";
54558
54605
  let asymmetricStr = "";
54559
54606
 
54560
54607
  let idName = (isNaN(ic.inputid) && ic.inputid.length > 5) ? "AlphaFold ID" : "PDB ID";
54608
+ if(me.cfg.refseqid) idName = 'NCBI RefSeq ID';
54561
54609
 
54562
54610
  $("#" + ic.pre + "title").html(idName + " <a id='" + ic.pre + "titlelink' href='" + url + "' style='color:" + titlelinkColor + "' target='_blank'>" + ic.inputid.toUpperCase() + "</a>" + asymmetricStr + ": " + title);
54563
54611
  }
@@ -54568,6 +54616,9 @@ class SaveFile {
54568
54616
  if(me.cfg.cid !== undefined) {
54569
54617
  url = "https://www.ncbi.nlm.nih.gov/pccompound/?term=";
54570
54618
  }
54619
+ else if(me.cfg.refseqid !== undefined) {
54620
+ url = "https://www.ncbi.nlm.nih.gov/protein/";
54621
+ }
54571
54622
  else if(me.cfg.afid !== undefined) {
54572
54623
  url = "https://alphafold.ebi.ac.uk/search/text/";
54573
54624
  }
@@ -54613,12 +54664,14 @@ class SaveFile {
54613
54664
  if(structArray.length === 1) {
54614
54665
  url = "https://www.ncbi.nlm.nih.gov/" + db + "/?term=" + structArray[0];
54615
54666
  me.htmlCls.clickMenuCls.setLogCmd("Entrez " + db + " about PDB " + structArray[0] + ": " + url, false);
54616
- window.open(url, '_blank');
54667
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
54668
+ window.open(url, urlTarget);
54617
54669
  }
54618
54670
  else if(structArray.length === 2) {
54619
54671
  url = "https://www.ncbi.nlm.nih.gov/" + db + "/?term=" + structArray[0] + " OR " + structArray[1];
54620
54672
  me.htmlCls.clickMenuCls.setLogCmd("Entrez " + db + " about PDB " + structArray[0] + " OR " + structArray[1] + ": " + url, false);
54621
- window.open(url, '_blank');
54673
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
54674
+ window.open(url, urlTarget);
54622
54675
  }
54623
54676
  }
54624
54677
  }
@@ -54813,6 +54866,14 @@ class ClickMenu {
54813
54866
  me.htmlCls.dialogCls.openDlg('dl_afid', 'Please input AlphaFold UniProt ID');
54814
54867
  });
54815
54868
 
54869
+ me.myEventCls.onIds("#" + me.pre + "mn1_refseqid", "click", function(e) { me.icn3d; e.preventDefault();
54870
+ me.htmlCls.dialogCls.openDlg('dl_refseqid', 'Please input NCBI RefSeq ID');
54871
+ });
54872
+
54873
+ // me.myEventCls.onIds("#" + me.pre + "mn1_proteinname", "click", function(e) { let ic = me.icn3d; e.preventDefault();
54874
+ // me.htmlCls.dialogCls.openDlg('dl_proteinname', 'Please input protein name to search');
54875
+ // });
54876
+
54816
54877
  // },
54817
54878
  // clkMn1_opmid: function() {
54818
54879
  me.myEventCls.onIds("#" + me.pre + "mn1_opmid", "click", function(e) { me.icn3d; e.preventDefault();
@@ -54885,11 +54946,12 @@ class ClickMenu {
54885
54946
  me.myEventCls.onIds("#" + me.pre + "mn1_fixedversion", "click", function(e) { me.icn3d; e.preventDefault();
54886
54947
  me.htmlCls.dialogCls.openDlg('dl_fixedversion', 'Open Share Link URL in the archived version of iCn3D');
54887
54948
  });
54888
- me.myEventCls.onIds("#" + me.pre + "reload_fixedversion", "click", function(e) { me.icn3d; e.preventDefault();
54949
+ me.myEventCls.onIds("#" + me.pre + "reload_fixedversion", "click", function(e) { let ic = me.icn3d; e.preventDefault();
54889
54950
  let url = $("#" + me.pre + "sharelinkurl").val();
54890
54951
  thisClass.setLogCmd("open " + url, false);
54891
54952
  localStorage.setItem('fixedversion', '1');
54892
- window.open(url, '_blank');
54953
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
54954
+ window.open(url, urlTarget);
54893
54955
  });
54894
54956
  // },
54895
54957
  // clkMn1_mmciffile: function() {
@@ -54921,13 +54983,6 @@ class ClickMenu {
54921
54983
  me.htmlCls.dialogCls.openDlg('dl_gi', 'Please input protein gi');
54922
54984
  });
54923
54985
 
54924
- me.myEventCls.onIds("#" + me.pre + "mn1_refseq", "click", function(e) { me.icn3d; e.preventDefault();
54925
- me.htmlCls.dialogCls.openDlg('dl_grefseq', 'Please input protein RefSeq');
54926
- });
54927
-
54928
- me.myEventCls.onIds("#" + me.pre + "mn1_uniprotid", "click", function(e) { me.icn3d; e.preventDefault();
54929
- me.htmlCls.dialogCls.openDlg('dl_uniprotid', 'Please input UniProt ID');
54930
- });
54931
54986
  // },
54932
54987
  // clkMn1_cid: function() {
54933
54988
  me.myEventCls.onIds("#" + me.pre + "mn1_cid", "click", function(e) { me.icn3d; e.preventDefault();
@@ -55268,14 +55323,16 @@ class ClickMenu {
55268
55323
  // clkMn1_link_structure: function() {
55269
55324
  me.myEventCls.onIds("#" + me.pre + "mn1_link_structure", "click", function(e) { let ic = me.icn3d; e.preventDefault();
55270
55325
  let url = ic.saveFileCls.getLinkToStructureSummary(true);
55271
- window.open(url, '_blank');
55326
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
55327
+ window.open(url, urlTarget);
55272
55328
  });
55273
55329
  // },
55274
55330
  // clkMn1_link_bind: function() {
55275
55331
  me.myEventCls.onIds("#" + me.pre + "mn1_link_bind", "click", function(e) { let ic = me.icn3d; e.preventDefault();
55276
55332
  url = "https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid=" + ic.inputid;
55277
55333
  thisClass.setLogCmd("link to 3D protein structures bound to CID " + ic.inputid + ": " + url, false);
55278
- window.open(url, '_blank');
55334
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
55335
+ window.open(url, urlTarget);
55279
55336
  });
55280
55337
  // },
55281
55338
  // clkMn1_link_vast: function() {
@@ -55302,8 +55359,10 @@ class ClickMenu {
55302
55359
  thisClass.setLogCmd("link to structures similar to " + idArray[0] + ": " + url, false);
55303
55360
  }
55304
55361
  }
55305
- window.open(url, '_blank');
55306
55362
  }
55363
+
55364
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
55365
+ window.open(url, urlTarget);
55307
55366
  });
55308
55367
  // },
55309
55368
  // clkMn1_link_pubmed: function() {
@@ -55312,7 +55371,8 @@ class ClickMenu {
55312
55371
  let url;
55313
55372
  url = "https://www.ncbi.nlm.nih.gov/pubmed/?term=" + ic.molTitle;
55314
55373
  thisClass.setLogCmd("link to literature about " + ic.molTitle + ": " + url, false);
55315
- window.open(url, '_blank');
55374
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
55375
+ window.open(url, urlTarget);
55316
55376
  }
55317
55377
  else if(ic.pmid) {
55318
55378
  let idArray = ic.pmid.toString().split('_');
@@ -55325,7 +55385,8 @@ class ClickMenu {
55325
55385
  url = "https://www.ncbi.nlm.nih.gov/pubmed/?term=" + idArray[0] + " OR " + idArray[1];
55326
55386
  thisClass.setLogCmd("link to PubMed IDs " + idArray[0] + ", " + idArray[1] + ": " + url, false);
55327
55387
  }
55328
- window.open(url, '_blank');
55388
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
55389
+ window.open(url, urlTarget);
55329
55390
  }
55330
55391
  else if(isNaN(ic.inputid)) {
55331
55392
  let idArray = ic.inputid.toString().split('_');
@@ -55338,7 +55399,8 @@ class ClickMenu {
55338
55399
  url = "https://www.ncbi.nlm.nih.gov/pubmed/?term=" + idArray[0] + " OR " + idArray[1];
55339
55400
  thisClass.setLogCmd("link to literature about PDB " + idArray[0] + " OR " + idArray[1] + ": " + url, false);
55340
55401
  }
55341
- window.open(url, '_blank');
55402
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
55403
+ window.open(url, urlTarget);
55342
55404
  }
55343
55405
  else {
55344
55406
  if(me.cfg.cid !== undefined) {
@@ -55365,7 +55427,8 @@ class ClickMenu {
55365
55427
  if(text.length > 0) text = text.substr(0, text.length - 4);
55366
55428
  let url = "https://www.ncbi.nlm.nih.gov/protein/?term=" + text;
55367
55429
  thisClass.setLogCmd("link to Entrez protein about PDB " + structArray + ": " + url, false);
55368
- window.open(url, '_blank');
55430
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
55431
+ window.open(url, urlTarget);
55369
55432
  });
55370
55433
  // },
55371
55434
  }
@@ -56666,7 +56729,8 @@ class ClickMenu {
56666
56729
  //else {
56667
56730
  url = url.replace("full.html", "full2.html");
56668
56731
  url += '&closepopup=1';
56669
- window.open(url, '_blank');
56732
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
56733
+ window.open(url, urlTarget);
56670
56734
  thisClass.setLogCmd('side by side | ' + url, true);
56671
56735
  //}
56672
56736
  });
@@ -57056,7 +57120,8 @@ class ClickMenu {
57056
57120
 
57057
57121
  let template = "<!doctype html>\n<head>\n<title>Loading Foldseek</title>\n<style>\n body {\n background-color: #121212;\n color: #fff;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n height: 100vh;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n }\n .loader {\n display: block;\n width: 80px;\n height: 80px;\n }\n .loader:after {\n content: \" \";\n display: block;\n width: 64px;\n height: 64px;\n margin: 8px;\n border-radius: 50%;\n border: 6px solid #fff;\n border-color: #fff transparent #fff transparent;\n animation: loader 1.2s linear infinite;\n }\n @keyframes loader {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n</style>\n</head>\n<body>\n<div>Foldseek is loading...</div><div class=\"loader\"></div>\n</body>";
57058
57122
 
57059
- let w = window.open('', '_blank');
57123
+ let urlTarget = '_blank';
57124
+ let w = window.open('', urlTarget);
57060
57125
  w.document.body.innerHTML = template;
57061
57126
 
57062
57127
  $.ajax({
@@ -57644,13 +57709,20 @@ class SetMenu {
57644
57709
  html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbid', 'NCBI MMDB ID (annotation) ' + me.htmlCls.wifiStr, undefined, 2);
57645
57710
  html += me.htmlCls.setHtmlCls.getLink('mn1_mmtfid', 'RCSB MMTF ID (fast) ' + me.htmlCls.wifiStr, undefined, 2);
57646
57711
  html += me.htmlCls.setHtmlCls.getLink('mn1_pdbid', 'RCSB PDB ID ' + me.htmlCls.wifiStr, undefined, 2);
57647
- html += me.htmlCls.setHtmlCls.getLink('mn1_afid', 'AlphaFold UniProt ID ' + me.htmlCls.wifiStr, undefined, 2);
57712
+
57713
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_afwrap', 'AlphaFold Structures', undefined, undefined, 2);
57714
+ html += "<ul>";
57715
+
57716
+ html += me.htmlCls.setHtmlCls.getLink('mn1_afid', 'UniProt ID ' + me.htmlCls.wifiStr, undefined, 3);
57717
+ html += me.htmlCls.setHtmlCls.getLink('mn1_refseqid', 'NCBI RefSeq ID ' + me.htmlCls.wifiStr, undefined, 3);
57718
+ // html += me.htmlCls.setHtmlCls.getLink('mn1_proteinname', 'Protein Name ' + me.htmlCls.wifiStr, undefined, 3);
57719
+ html += "</ul>";
57720
+
57721
+
57648
57722
  html += me.htmlCls.setHtmlCls.getLink('mn1_opmid', 'OPM PDB ID ' + me.htmlCls.wifiStr, undefined, 2);
57649
57723
  html += me.htmlCls.setHtmlCls.getLink('mn1_mmcifid', 'RCSB mmCIF ID ' + me.htmlCls.wifiStr, undefined, 2);
57650
- html += me.htmlCls.setHtmlCls.getLink('mn1_gi', 'NCBI gi ' + me.htmlCls.wifiStr, undefined, 2);
57651
- //html += me.htmlCls.setHtmlCls.getLink('mn1_refseq', 'NCBI RefSeq ' + me.htmlCls.wifiStr, undefined, 2);
57724
+ //html += me.htmlCls.setHtmlCls.getLink('mn1_gi', 'NCBI gi ' + me.htmlCls.wifiStr, undefined, 2);
57652
57725
 
57653
- //html += me.htmlCls.setHtmlCls.getLink('mn1_uniprotid', 'UniProt ID ' + me.htmlCls.wifiStr);
57654
57726
  html += me.htmlCls.setHtmlCls.getLink('mn1_cid', 'PubChem CID ' + me.htmlCls.wifiStr, 1, 2);
57655
57727
 
57656
57728
  html += "</ul>";
@@ -59858,6 +59930,16 @@ class SetDialog {
59858
59930
  + me.htmlCls.buttonStr + "reload_afmapfull' style='margin-left:30px'>Load Full (slow)</button>";
59859
59931
  html += "</div>";
59860
59932
 
59933
+ html += me.htmlCls.divStr + "dl_refseqid' class='" + dialogClass + "'>";
59934
+ html += "NCBI RefSeq ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "refseqid' value='0308234A' size=8> ";
59935
+ html += me.htmlCls.buttonStr + "reload_refseq'>Load</button>";
59936
+ html += "</div>";
59937
+
59938
+ // html += me.htmlCls.divStr + "dl_proteinname' class='" + dialogClass + "'>";
59939
+ // html += "PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "proteinname' value='kinase' size=8> ";
59940
+ // html += me.htmlCls.buttonStr + "reload_proteinname'>Load</button>";
59941
+ // html += "</div>";
59942
+
59861
59943
  html += me.htmlCls.divStr + "dl_opmid' class='" + dialogClass + "'>";
59862
59944
  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> ";
59863
59945
  html += me.htmlCls.buttonStr + "reload_opm'>Load</button>";
@@ -60076,17 +60158,6 @@ class SetDialog {
60076
60158
  html += me.htmlCls.buttonStr + "reload_gi'>Load</button>";
60077
60159
  html += "</div>";
60078
60160
 
60079
- html += me.htmlCls.divStr + "dl_refseq' class='" + dialogClass + "'>";
60080
- html += "Protein RefSeq: " + me.htmlCls.inputTextStr + "id='" + me.pre + "refseq' value='0308234A' size=8> ";
60081
- html += me.htmlCls.buttonStr + "reload_refseq'>Load</button>";
60082
- html += "</div>";
60083
-
60084
- html += me.htmlCls.divStr + "dl_uniprotid' class='" + dialogClass + "'>";
60085
- html += "Note: A list of structures will be shown. Click \"View in iCn3D\" to view each structure in 3D.<br><br>";
60086
- html += "UniProt ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "uniprotid' value='P0DTC2' size=8> ";
60087
- html += me.htmlCls.buttonStr + "reload_uniprotid'>Load</button>";
60088
- html += "</div>";
60089
-
60090
60161
  html += me.htmlCls.divStr + "dl_cid' class='" + dialogClass + "'>";
60091
60162
  html += "PubChem CID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "cid' value='2244' size=8> ";
60092
60163
  html += me.htmlCls.buttonStr + "reload_cid'>Load</button>";
@@ -61090,7 +61161,7 @@ class Events {
61090
61161
  $("#" + me.pre + id).resizable();
61091
61162
  }
61092
61163
 
61093
- launchMmdb(ids, bBiounit, hostUrl) { let me = this.icn3dui; me.icn3d;
61164
+ launchMmdb(ids, bBiounit, hostUrl) { let me = this.icn3dui, ic = me.icn3d;
61094
61165
  let flag = bBiounit ? '1' : '0';
61095
61166
 
61096
61167
  ids = ids.replace(/,/g, ' ').replace(/\s+/g, ',').trim();
@@ -61103,11 +61174,13 @@ class Events {
61103
61174
  let idArray = ids.split(',');
61104
61175
  if(idArray.length == 1 && (idArray[0].length == 4 || !isNaN(idArray[0])) ) {
61105
61176
  me.htmlCls.clickMenuCls.setLogCmd("load mmdb" + flag + " " + ids, false);
61106
- window.open(hostUrl + '?mmdbid=' + ids + '&bu=' + flag, '_blank');
61177
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61178
+ window.open(hostUrl + '?mmdbid=' + ids + '&bu=' + flag, urlTarget);
61107
61179
  }
61108
61180
  else {
61109
61181
  me.htmlCls.clickMenuCls.setLogCmd("load mmdbaf" + flag + " " + ids, false);
61110
- window.open(hostUrl + '?mmdbafid=' + ids + '&bu=' + flag, '_blank');
61182
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61183
+ window.open(hostUrl + '?mmdbafid=' + ids + '&bu=' + flag, urlTarget);
61111
61184
  }
61112
61185
  }
61113
61186
 
@@ -61456,18 +61529,20 @@ class Events {
61456
61529
 
61457
61530
  // },
61458
61531
  // clickReload_mmtf: function() {
61459
- me.myEventCls.onIds("#" + me.pre + "reload_vastplus", "click", function(e) { me.icn3d;
61532
+ me.myEventCls.onIds("#" + me.pre + "reload_vastplus", "click", function(e) { let ic = me.icn3d;
61460
61533
  e.preventDefault();
61461
61534
  if(!me.cfg.notebook) dialog.dialog( "close" );
61462
61535
  me.htmlCls.clickMenuCls.setLogCmd("vast+ search " + $("#" + me.pre + "vastpluspdbid").val(), false);
61463
- window.open('https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid=' + $("#" + me.pre + "vastpluspdbid").val(), '_blank');
61536
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61537
+ window.open('https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid=' + $("#" + me.pre + "vastpluspdbid").val(), urlTarget);
61464
61538
  });
61465
61539
 
61466
- me.myEventCls.onIds("#" + me.pre + "reload_vast", "click", function(e) { me.icn3d;
61540
+ me.myEventCls.onIds("#" + me.pre + "reload_vast", "click", function(e) { let ic = me.icn3d;
61467
61541
  e.preventDefault();
61468
61542
  if(!me.cfg.notebook) dialog.dialog( "close" );
61469
61543
  me.htmlCls.clickMenuCls.setLogCmd("vast search " + $("#" + me.pre + "vastpdbid").val() + "_" + $("#" + me.pre + "vastchainid").val(), false);
61470
- window.open('https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid=' + $("#" + me.pre + "vastpdbid").val() + '&chain=' + $("#" + me.pre + "vastchainid").val(), '_blank');
61544
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61545
+ window.open('https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid=' + $("#" + me.pre + "vastpdbid").val() + '&chain=' + $("#" + me.pre + "vastchainid").val(), urlTarget);
61471
61546
  });
61472
61547
 
61473
61548
  me.myEventCls.onIds("#" + me.pre + "reload_foldseek", "click", function(e) { me.icn3d;
@@ -61485,50 +61560,55 @@ class Events {
61485
61560
  window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&showalignseq=1&bu=0', '_self');
61486
61561
  });
61487
61562
 
61488
- me.myEventCls.onIds("#" + me.pre + "reload_mmtf", "click", function(e) { me.icn3d;
61563
+ me.myEventCls.onIds("#" + me.pre + "reload_mmtf", "click", function(e) { let ic = me.icn3d;
61489
61564
  e.preventDefault();
61490
61565
  if(!me.cfg.notebook) dialog.dialog( "close" );
61491
61566
  me.htmlCls.clickMenuCls.setLogCmd("load mmtf " + $("#" + me.pre + "mmtfid").val(), false);
61492
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmtfid=' + $("#" + me.pre + "mmtfid").val(), '_blank');
61493
- window.open(hostUrl + '?mmtfid=' + $("#" + me.pre + "mmtfid").val(), '_blank');
61567
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmtfid=' + $("#" + me.pre + "mmtfid").val(), urlTarget);
61568
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61569
+ window.open(hostUrl + '?mmtfid=' + $("#" + me.pre + "mmtfid").val(), urlTarget);
61494
61570
  });
61495
61571
 
61496
- me.myEventCls.onIds("#" + me.pre + "mmtfid", "keyup", function(e) { me.icn3d;
61572
+ me.myEventCls.onIds("#" + me.pre + "mmtfid", "keyup", function(e) { let ic = me.icn3d;
61497
61573
  if (e.keyCode === 13) {
61498
61574
  e.preventDefault();
61499
61575
  if(!me.cfg.notebook) dialog.dialog( "close" );
61500
61576
  me.htmlCls.clickMenuCls.setLogCmd("load mmtf " + $("#" + me.pre + "mmtfid").val(), false);
61501
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmtfid=' + $("#" + me.pre + "mmtfid").val(), '_blank');
61502
- window.open(hostUrl + '?mmtfid=' + $("#" + me.pre + "mmtfid").val(), '_blank');
61577
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmtfid=' + $("#" + me.pre + "mmtfid").val(), urlTarget);
61578
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61579
+ window.open(hostUrl + '?mmtfid=' + $("#" + me.pre + "mmtfid").val(), urlTarget);
61503
61580
  }
61504
61581
  });
61505
61582
 
61506
61583
  // },
61507
61584
  // clickReload_pdb: function() {
61508
- me.myEventCls.onIds("#" + me.pre + "reload_pdb", "click", function(e) { me.icn3d;
61585
+ me.myEventCls.onIds("#" + me.pre + "reload_pdb", "click", function(e) { let ic = me.icn3d;
61509
61586
  e.preventDefault();
61510
61587
  if(!me.cfg.notebook) dialog.dialog( "close" );
61511
61588
  me.htmlCls.clickMenuCls.setLogCmd("load pdb " + $("#" + me.pre + "pdbid").val(), false);
61512
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?pdbid=' + $("#" + me.pre + "pdbid").val(), '_blank');
61513
- window.open(hostUrl + '?pdbid=' + $("#" + me.pre + "pdbid").val(), '_blank');
61589
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?pdbid=' + $("#" + me.pre + "pdbid").val(), urlTarget);
61590
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61591
+ window.open(hostUrl + '?pdbid=' + $("#" + me.pre + "pdbid").val(), urlTarget);
61514
61592
  });
61515
61593
 
61516
- me.myEventCls.onIds("#" + me.pre + "pdbid", "keyup", function(e) { me.icn3d;
61594
+ me.myEventCls.onIds("#" + me.pre + "pdbid", "keyup", function(e) { let ic = me.icn3d;
61517
61595
  if (e.keyCode === 13) {
61518
61596
  e.preventDefault();
61519
61597
  if(!me.cfg.notebook) dialog.dialog( "close" );
61520
61598
  me.htmlCls.clickMenuCls.setLogCmd("load pdb " + $("#" + me.pre + "pdbid").val(), false);
61521
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?pdbid=' + $("#" + me.pre + "pdbid").val(), '_blank');
61522
- window.open(hostUrl + '?pdbid=' + $("#" + me.pre + "pdbid").val(), '_blank');
61599
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?pdbid=' + $("#" + me.pre + "pdbid").val(), urlTarget);
61600
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61601
+ window.open(hostUrl + '?pdbid=' + $("#" + me.pre + "pdbid").val(), urlTarget);
61523
61602
  }
61524
61603
  });
61525
61604
 
61526
- me.myEventCls.onIds("#" + me.pre + "reload_af", "click", function(e) { me.icn3d;
61605
+ me.myEventCls.onIds("#" + me.pre + "reload_af", "click", function(e) { let ic = me.icn3d;
61527
61606
  e.preventDefault();
61528
61607
  if(!me.cfg.notebook) dialog.dialog( "close" );
61529
61608
  me.htmlCls.clickMenuCls.setLogCmd("load af " + $("#" + me.pre + "afid").val(), false);
61530
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?afid=' + $("#" + me.pre + "afid").val(), '_blank');
61531
- window.open(hostUrl + '?afid=' + $("#" + me.pre + "afid").val(), '_blank');
61609
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?afid=' + $("#" + me.pre + "afid").val(), urlTarget);
61610
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61611
+ window.open(hostUrl + '?afid=' + $("#" + me.pre + "afid").val(), urlTarget);
61532
61612
  });
61533
61613
 
61534
61614
  me.myEventCls.onIds("#" + me.pre + "reload_afmap", "click", function(e) { let ic = me.icn3d;
@@ -61550,79 +61630,87 @@ class Events {
61550
61630
  ic.contactMapCls.afErrorMap(afid, true);
61551
61631
  });
61552
61632
 
61553
- me.myEventCls.onIds("#" + me.pre + "afid", "keyup", function(e) { me.icn3d;
61633
+ me.myEventCls.onIds("#" + me.pre + "afid", "keyup", function(e) { let ic = me.icn3d;
61554
61634
  if (e.keyCode === 13) {
61555
61635
  e.preventDefault();
61556
61636
  if(!me.cfg.notebook) dialog.dialog( "close" );
61557
61637
  me.htmlCls.clickMenuCls.setLogCmd("load af " + $("#" + me.pre + "afid").val(), false);
61558
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?afid=' + $("#" + me.pre + "afid").val(), '_blank');
61559
- window.open(hostUrl + '?afid=' + $("#" + me.pre + "afid").val(), '_blank');
61638
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?afid=' + $("#" + me.pre + "afid").val(), urlTarget);
61639
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61640
+ window.open(hostUrl + '?afid=' + $("#" + me.pre + "afid").val(), urlTarget);
61560
61641
  }
61561
61642
  });
61562
61643
 
61563
61644
  // },
61564
61645
  // clickReload_opm: function() {
61565
- me.myEventCls.onIds("#" + me.pre + "reload_opm", "click", function(e) { me.icn3d;
61646
+ me.myEventCls.onIds("#" + me.pre + "reload_opm", "click", function(e) { let ic = me.icn3d;
61566
61647
  e.preventDefault();
61567
61648
  if(!me.cfg.notebook) dialog.dialog( "close" );
61568
61649
  me.htmlCls.clickMenuCls.setLogCmd("load opm " + $("#" + me.pre + "opmid").val(), false);
61569
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?opmid=' + $("#" + me.pre + "opmid").val(), '_blank');
61570
- window.open(hostUrl + '?opmid=' + $("#" + me.pre + "opmid").val(), '_blank');
61650
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?opmid=' + $("#" + me.pre + "opmid").val(), urlTarget);
61651
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61652
+ window.open(hostUrl + '?opmid=' + $("#" + me.pre + "opmid").val(), urlTarget);
61571
61653
  });
61572
61654
 
61573
- me.myEventCls.onIds("#" + me.pre + "opmid", "keyup", function(e) { me.icn3d;
61655
+ me.myEventCls.onIds("#" + me.pre + "opmid", "keyup", function(e) { let ic = me.icn3d;
61574
61656
  if (e.keyCode === 13) {
61575
61657
  e.preventDefault();
61576
61658
  if(!me.cfg.notebook) dialog.dialog( "close" );
61577
61659
  me.htmlCls.clickMenuCls.setLogCmd("load opm " + $("#" + me.pre + "opmid").val(), false);
61578
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?opmid=' + $("#" + me.pre + "opmid").val(), '_blank');
61579
- window.open(hostUrl + '?opmid=' + $("#" + me.pre + "opmid").val(), '_blank');
61660
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?opmid=' + $("#" + me.pre + "opmid").val(), urlTarget);
61661
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61662
+ window.open(hostUrl + '?opmid=' + $("#" + me.pre + "opmid").val(), urlTarget);
61580
61663
  }
61581
61664
  });
61582
61665
 
61583
61666
  // },
61584
61667
  // clickReload_align_refined: function() {
61585
- me.myEventCls.onIds("#" + me.pre + "reload_align_refined", "click", function(e) { me.icn3d;
61668
+ me.myEventCls.onIds("#" + me.pre + "reload_align_refined", "click", function(e) { let ic = me.icn3d;
61586
61669
  e.preventDefault();
61587
61670
  if(!me.cfg.notebook) dialog.dialog( "close" );
61588
61671
  let alignment = $("#" + me.pre + "alignid1").val() + "," + $("#" + me.pre + "alignid2").val();
61589
61672
  me.htmlCls.clickMenuCls.setLogCmd("load alignment " + alignment + ' | parameters &atype=1&bu=1', false);
61590
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?align=' + alignment + '&showalignseq=1&atype=1', '_blank');
61591
- window.open(hostUrl + '?align=' + alignment + '&showalignseq=1&atype=1&bu=1', '_blank');
61673
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?align=' + alignment + '&showalignseq=1&atype=1', urlTarget);
61674
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61675
+ window.open(hostUrl + '?align=' + alignment + '&showalignseq=1&atype=1&bu=1', urlTarget);
61592
61676
  });
61593
61677
  // },
61594
61678
  // clickReload_align_ori: function() {
61595
- me.myEventCls.onIds("#" + me.pre + "reload_align_ori", "click", function(e) { me.icn3d;
61679
+ me.myEventCls.onIds("#" + me.pre + "reload_align_ori", "click", function(e) { let ic = me.icn3d;
61596
61680
  e.preventDefault();
61597
61681
  if(!me.cfg.notebook) dialog.dialog( "close" );
61598
61682
  let alignment = $("#" + me.pre + "alignid1").val() + "," + $("#" + me.pre + "alignid2").val();
61599
61683
  me.htmlCls.clickMenuCls.setLogCmd("load alignment " + alignment + ' | parameters &atype=0&bu=1', false);
61600
- //window.open( me.htmlCls.baseUrl + 'icn3d/full.html?align=' + alignment + '&showalignseq=1&atype=0', '_blank');
61601
- window.open(hostUrl + '?align=' + alignment + '&showalignseq=1&atype=0&bu=1', '_blank');
61684
+ //window.open( me.htmlCls.baseUrl + 'icn3d/full.html?align=' + alignment + '&showalignseq=1&atype=0', urlTarget);
61685
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61686
+ window.open(hostUrl + '?align=' + alignment + '&showalignseq=1&atype=0&bu=1', urlTarget);
61602
61687
  });
61603
61688
 
61604
- me.myEventCls.onIds("#" + me.pre + "reload_align_tmalign", "click", function(e) { me.icn3d;
61689
+ me.myEventCls.onIds("#" + me.pre + "reload_align_tmalign", "click", function(e) { let ic = me.icn3d;
61605
61690
  e.preventDefault();
61606
61691
  if(!me.cfg.notebook) dialog.dialog( "close" );
61607
61692
  let alignment = $("#" + me.pre + "alignid1").val() + "," + $("#" + me.pre + "alignid2").val();
61608
61693
  me.htmlCls.clickMenuCls.setLogCmd("load alignment " + alignment + ' | parameters &atype=2&bu=1', false);
61609
- window.open(hostUrl + '?align=' + alignment + '&showalignseq=1&atype=2&bu=1', '_blank');
61694
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61695
+ window.open(hostUrl + '?align=' + alignment + '&showalignseq=1&atype=2&bu=1', urlTarget);
61610
61696
  });
61611
61697
 
61612
- me.myEventCls.onIds("#" + me.pre + "reload_alignaf", "click", function(e) { me.icn3d;
61698
+ me.myEventCls.onIds("#" + me.pre + "reload_alignaf", "click", function(e) { let ic = me.icn3d;
61613
61699
  e.preventDefault();
61614
61700
  if(!me.cfg.notebook) dialog.dialog( "close" );
61615
61701
  let alignment = $("#" + me.pre + "alignafid1").val() + "_A," + $("#" + me.pre + "alignafid2").val() + "_A";
61616
61702
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment + " | residues | resdef ", false);
61617
- window.open(hostUrl + '?chainalign=' + alignment + '&resnum=&resdef=&showalignseq=1', '_blank');
61703
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61704
+ window.open(hostUrl + '?chainalign=' + alignment + '&resnum=&resdef=&showalignseq=1', urlTarget);
61618
61705
  });
61619
61706
 
61620
- me.myEventCls.onIds("#" + me.pre + "reload_alignaf_tmalign", "click", function(e) { me.icn3d;
61707
+ me.myEventCls.onIds("#" + me.pre + "reload_alignaf_tmalign", "click", function(e) { let ic = me.icn3d;
61621
61708
  e.preventDefault();
61622
61709
  if(!me.cfg.notebook) dialog.dialog( "close" );
61623
61710
  let alignment = $("#" + me.pre + "alignafid1").val() + "_A," + $("#" + me.pre + "alignafid2").val() + "_A";
61624
61711
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment + " | residues | resdef | align tmalign", false);
61625
- window.open(hostUrl + '?chainalign=' + alignment + '&aligntool=tmalign&resnum=&resdef=&showalignseq=1', '_blank');
61712
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61713
+ window.open(hostUrl + '?chainalign=' + alignment + '&aligntool=tmalign&resnum=&resdef=&showalignseq=1', urlTarget);
61626
61714
  });
61627
61715
  // },
61628
61716
  // clickReload_chainalign: function() {
@@ -61641,11 +61729,11 @@ class Events {
61641
61729
  }
61642
61730
 
61643
61731
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " | residues " + resalign + " | resdef " + predefinedres, false);
61644
- window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=' + resalign + '&resdef=' + predefinedres + '&showalignseq=1', '_blank');
61732
+ window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=' + resalign + '&resdef=' + predefinedres + '&showalignseq=1', urlTarget);
61645
61733
  });
61646
61734
  */
61647
61735
 
61648
- me.myEventCls.onIds("#" + me.pre + "reload_chainalign_asym", "click", function(e) { me.icn3d;
61736
+ me.myEventCls.onIds("#" + me.pre + "reload_chainalign_asym", "click", function(e) { let ic = me.icn3d;
61649
61737
  e.preventDefault();
61650
61738
  if(!me.cfg.notebook) dialog.dialog( "close" );
61651
61739
 
@@ -61653,10 +61741,11 @@ class Events {
61653
61741
  let alignment_final = thisClass.convertUniProtInChains(alignment);
61654
61742
 
61655
61743
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef ", false);
61656
- window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
61744
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61745
+ window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=&resdef=&showalignseq=1&bu=0', urlTarget);
61657
61746
  });
61658
61747
 
61659
- me.myEventCls.onIds("#" + me.pre + "reload_chainalign_asym2", "click", function(e) { me.icn3d;
61748
+ me.myEventCls.onIds("#" + me.pre + "reload_chainalign_asym2", "click", function(e) { let ic = me.icn3d;
61660
61749
  e.preventDefault();
61661
61750
  if(!me.cfg.notebook) dialog.dialog( "close" );
61662
61751
 
@@ -61665,10 +61754,11 @@ class Events {
61665
61754
  let resalign = $("#" + me.pre + "resalignids").val();
61666
61755
 
61667
61756
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues " + resalign + " | resdef ", false);
61668
- window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=' + resalign + '&resdef=&showalignseq=1&bu=0', '_blank');
61757
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61758
+ window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=' + resalign + '&resdef=&showalignseq=1&bu=0', urlTarget);
61669
61759
  });
61670
61760
 
61671
- me.myEventCls.onIds("#" + me.pre + "reload_chainalign_asym3", "click", function(e) { me.icn3d;
61761
+ me.myEventCls.onIds("#" + me.pre + "reload_chainalign_asym3", "click", function(e) { let ic = me.icn3d;
61672
61762
  e.preventDefault();
61673
61763
  if(!me.cfg.notebook) dialog.dialog( "close" );
61674
61764
 
@@ -61682,7 +61772,8 @@ class Events {
61682
61772
  }
61683
61773
 
61684
61774
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef " + predefinedres, false);
61685
- window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=&resdef=' + predefinedres + '&showalignseq=1&bu=0', '_blank');
61775
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61776
+ window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=&resdef=' + predefinedres + '&showalignseq=1&bu=0', urlTarget);
61686
61777
  });
61687
61778
 
61688
61779
  me.myEventCls.onIds("#" + me.pre + "reload_chainalign_asym4", "click", function(e) { let ic = me.icn3d;
@@ -61707,7 +61798,7 @@ class Events {
61707
61798
  me.htmlCls.clickMenuCls.setLogCmd("realign predefined " + alignment_final + " " + predefinedres, true);
61708
61799
  });
61709
61800
 
61710
- me.myEventCls.onIds("#" + me.pre + "reload_chainalign_tmalign", "click", function(e) { me.icn3d;
61801
+ me.myEventCls.onIds("#" + me.pre + "reload_chainalign_tmalign", "click", function(e) { let ic = me.icn3d;
61711
61802
  e.preventDefault();
61712
61803
  if(!me.cfg.notebook) dialog.dialog( "close" );
61713
61804
 
@@ -61715,7 +61806,8 @@ class Events {
61715
61806
  let alignment_final = thisClass.convertUniProtInChains(alignment);
61716
61807
 
61717
61808
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef | align tmalign", false);
61718
- window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
61809
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61810
+ window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0', urlTarget);
61719
61811
  });
61720
61812
 
61721
61813
  me.myEventCls.onIds("#" + me.pre + "reload_mutation_3d", "click", function(e) { let ic = me.icn3d;
@@ -61747,7 +61839,8 @@ class Events {
61747
61839
  else {
61748
61840
  let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
61749
61841
  me.htmlCls.clickMenuCls.setLogCmd("3d of mutation " + mutationids, false);
61750
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
61842
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61843
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', urlTarget);
61751
61844
  }
61752
61845
  });
61753
61846
 
@@ -61780,7 +61873,8 @@ class Events {
61780
61873
  else {
61781
61874
  let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
61782
61875
  me.htmlCls.clickMenuCls.setLogCmd("pdb of mutation " + mutationids, false);
61783
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
61876
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61877
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', urlTarget);
61784
61878
  }
61785
61879
  });
61786
61880
 
@@ -61837,44 +61931,49 @@ class Events {
61837
61931
  ic.resid2specCls.residueids2spec(residArray);
61838
61932
 
61839
61933
  me.htmlCls.clickMenuCls.setLogCmd("interaction change of mutation " + mutationids, false);
61840
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
61934
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61935
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, urlTarget);
61841
61936
  }
61842
61937
  });
61843
61938
 
61844
61939
  // },
61845
61940
  // clickReload_mmcif: function() {
61846
- me.myEventCls.onIds("#" + me.pre + "reload_mmcif", "click", function(e) { me.icn3d;
61941
+ me.myEventCls.onIds("#" + me.pre + "reload_mmcif", "click", function(e) { let ic = me.icn3d;
61847
61942
  e.preventDefault();
61848
61943
  if(!me.cfg.notebook) dialog.dialog( "close" );
61849
61944
  me.htmlCls.clickMenuCls.setLogCmd("load mmcif " + $("#" + me.pre + "mmcifid").val(), false);
61850
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmcifid=' + $("#" + me.pre + "mmcifid").val(), '_blank');
61851
- window.open(hostUrl + '?mmcifid=' + $("#" + me.pre + "mmcifid").val(), '_blank');
61945
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmcifid=' + $("#" + me.pre + "mmcifid").val(), urlTarget);
61946
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61947
+ window.open(hostUrl + '?mmcifid=' + $("#" + me.pre + "mmcifid").val(), urlTarget);
61852
61948
  });
61853
61949
 
61854
- me.myEventCls.onIds("#" + me.pre + "mmcifid", "keyup", function(e) { me.icn3d;
61950
+ me.myEventCls.onIds("#" + me.pre + "mmcifid", "keyup", function(e) { let ic = me.icn3d;
61855
61951
  if (e.keyCode === 13) {
61856
61952
  e.preventDefault();
61857
61953
  if(!me.cfg.notebook) dialog.dialog( "close" );
61858
61954
  me.htmlCls.clickMenuCls.setLogCmd("load mmcif " + $("#" + me.pre + "mmcifid").val(), false);
61859
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmcifid=' + $("#" + me.pre + "mmcifid").val(), '_blank');
61860
- window.open(hostUrl + '?mmcifid=' + $("#" + me.pre + "mmcifid").val(), '_blank');
61955
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmcifid=' + $("#" + me.pre + "mmcifid").val(), urlTarget);
61956
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61957
+ window.open(hostUrl + '?mmcifid=' + $("#" + me.pre + "mmcifid").val(), urlTarget);
61861
61958
  }
61862
61959
  });
61863
61960
 
61864
61961
  // },
61865
61962
  // clickReload_mmdb: function() {
61866
- me.myEventCls.onIds("#" + me.pre + "reload_mmdb", "click", function(e) { me.icn3d;
61963
+ me.myEventCls.onIds("#" + me.pre + "reload_mmdb", "click", function(e) { let ic = me.icn3d;
61867
61964
  e.preventDefault();
61868
61965
  //if(!me.cfg.notebook) dialog.dialog( "close" );
61869
61966
  me.htmlCls.clickMenuCls.setLogCmd("load mmdb1 " + $("#" + me.pre + "mmdbid").val(), false);
61870
- window.open(hostUrl + '?mmdbid=' + $("#" + me.pre + "mmdbid").val() + '&bu=1', '_blank');
61967
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61968
+ window.open(hostUrl + '?mmdbid=' + $("#" + me.pre + "mmdbid").val() + '&bu=1', urlTarget);
61871
61969
  });
61872
61970
 
61873
- me.myEventCls.onIds("#" + me.pre + "reload_mmdb_asym", "click", function(e) { me.icn3d;
61971
+ me.myEventCls.onIds("#" + me.pre + "reload_mmdb_asym", "click", function(e) { let ic = me.icn3d;
61874
61972
  e.preventDefault();
61875
61973
  //if(!me.cfg.notebook) dialog.dialog( "close" );
61876
61974
  me.htmlCls.clickMenuCls.setLogCmd("load mmdb0 " + $("#" + me.pre + "mmdbid").val(), false);
61877
- window.open(hostUrl + '?mmdbid=' + $("#" + me.pre + "mmdbid").val() + '&bu=0', '_blank');
61975
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61976
+ window.open(hostUrl + '?mmdbid=' + $("#" + me.pre + "mmdbid").val() + '&bu=0', urlTarget);
61878
61977
  });
61879
61978
 
61880
61979
  me.myEventCls.onIds("#" + me.pre + "reload_mmdbaf", "click", function(e) { me.icn3d;
@@ -61896,12 +61995,13 @@ class Events {
61896
61995
  thisClass.launchMmdb(ids, 0, hostUrl);
61897
61996
  });
61898
61997
 
61899
- me.myEventCls.onIds("#" + me.pre + "mmdbid", "keyup", function(e) { me.icn3d;
61998
+ me.myEventCls.onIds("#" + me.pre + "mmdbid", "keyup", function(e) { let ic = me.icn3d;
61900
61999
  if (e.keyCode === 13) {
61901
62000
  e.preventDefault();
61902
62001
  //if(!me.cfg.notebook) dialog.dialog( "close" );
61903
62002
  me.htmlCls.clickMenuCls.setLogCmd("load mmdb1 " + $("#" + me.pre + "mmdbid").val(), false);
61904
- window.open(hostUrl + '?mmdbid=' + $("#" + me.pre + "mmdbid").val() + '&bu=1', '_blank');
62003
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62004
+ window.open(hostUrl + '?mmdbid=' + $("#" + me.pre + "mmdbid").val() + '&bu=1', urlTarget);
61905
62005
  }
61906
62006
  });
61907
62007
 
@@ -61916,7 +62016,7 @@ class Events {
61916
62016
 
61917
62017
  // },
61918
62018
  // clickReload_blast_rep_id: function() {
61919
- me.myEventCls.onIds("#" + me.pre + "reload_blast_rep_id", "click", function(e) { me.icn3d;
62019
+ me.myEventCls.onIds("#" + me.pre + "reload_blast_rep_id", "click", function(e) { let ic = me.icn3d;
61920
62020
  e.preventDefault();
61921
62021
  if(!me.cfg.notebook) dialog.dialog( "close" );
61922
62022
  let query_id = $("#" + me.pre + "query_id").val();
@@ -61925,13 +62025,14 @@ class Events {
61925
62025
  me.htmlCls.clickMenuCls.setLogCmd("load seq_struct_ids " + query_id + "," + blast_rep_id, false);
61926
62026
  query_id =(query_id !== '' && query_id !== undefined) ? query_id : query_fasta;
61927
62027
  //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?from=icn3d&blast_rep_id=' + blast_rep_id
62028
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61928
62029
  window.open(hostUrl + '?from=icn3d&alg=blast&blast_rep_id=' + blast_rep_id
61929
62030
  + '&query_id=' + query_id
61930
62031
  + '&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain '
61931
- + blast_rep_id + '; show selection', '_blank');
62032
+ + blast_rep_id + '; show selection', urlTarget);
61932
62033
  });
61933
62034
 
61934
- me.myEventCls.onIds("#" + me.pre + "reload_alignsw", "click", function(e) { me.icn3d;
62035
+ me.myEventCls.onIds("#" + me.pre + "reload_alignsw", "click", function(e) { let ic = me.icn3d;
61935
62036
  e.preventDefault();
61936
62037
  if(!me.cfg.notebook) dialog.dialog( "close" );
61937
62038
  let query_id = $("#" + me.pre + "query_id").val();
@@ -61940,13 +62041,14 @@ class Events {
61940
62041
  me.htmlCls.clickMenuCls.setLogCmd("load seq_struct_ids_smithwm " + query_id + "," + blast_rep_id, false);
61941
62042
  query_id =(query_id !== '' && query_id !== undefined) ? query_id : query_fasta;
61942
62043
 
62044
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61943
62045
  window.open(hostUrl + '?from=icn3d&alg=smithwm&blast_rep_id=' + blast_rep_id
61944
62046
  + '&query_id=' + query_id
61945
62047
  + '&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain '
61946
- + blast_rep_id + '; show selection', '_blank');
62048
+ + blast_rep_id + '; show selection', urlTarget);
61947
62049
  });
61948
62050
 
61949
- me.myEventCls.onIds("#" + me.pre + "reload_alignswlocal", "click", function(e) { me.icn3d;
62051
+ me.myEventCls.onIds("#" + me.pre + "reload_alignswlocal", "click", function(e) { let ic = me.icn3d;
61950
62052
  e.preventDefault();
61951
62053
  if(!me.cfg.notebook) dialog.dialog( "close" );
61952
62054
  let query_id = $("#" + me.pre + "query_id").val();
@@ -61955,75 +62057,84 @@ class Events {
61955
62057
  me.htmlCls.clickMenuCls.setLogCmd("load seq_struct_ids_local_smithwm " + query_id + "," + blast_rep_id, false);
61956
62058
  query_id =(query_id !== '' && query_id !== undefined) ? query_id : query_fasta;
61957
62059
 
62060
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
61958
62061
  window.open(hostUrl + '?from=icn3d&alg=local_smithwm&blast_rep_id=' + blast_rep_id
61959
62062
  + '&query_id=' + query_id
61960
62063
  + '&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain '
61961
- + blast_rep_id + '; show selection', '_blank');
62064
+ + blast_rep_id + '; show selection', urlTarget);
61962
62065
  });
61963
62066
 
61964
62067
  // },
61965
62068
  // clickReload_gi: function() {
61966
- me.myEventCls.onIds("#" + me.pre + "reload_gi", "click", function(e) { me.icn3d;
62069
+ me.myEventCls.onIds("#" + me.pre + "reload_gi", "click", function(e) { let ic = me.icn3d;
61967
62070
  e.preventDefault();
61968
62071
  if(!me.cfg.notebook) dialog.dialog( "close" );
61969
62072
  me.htmlCls.clickMenuCls.setLogCmd("load gi " + $("#" + me.pre + "gi").val(), false);
61970
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?gi=' + $("#" + me.pre + "gi").val(), '_blank');
61971
- window.open(hostUrl + '?gi=' + $("#" + me.pre + "gi").val(), '_blank');
62073
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?gi=' + $("#" + me.pre + "gi").val(), urlTarget);
62074
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62075
+ window.open(hostUrl + '?gi=' + $("#" + me.pre + "gi").val(), urlTarget);
61972
62076
  });
61973
62077
 
61974
- me.myEventCls.onIds("#" + me.pre + "reload_refseq", "click", function(e) { me.icn3d;
62078
+ me.myEventCls.onIds("#" + me.pre + "reload_refseq", "click", function(e) { let ic = me.icn3d;
61975
62079
  e.preventDefault();
61976
62080
  if(!me.cfg.notebook) dialog.dialog( "close" );
61977
- me.htmlCls.clickMenuCls.setLogCmd("load refseq " + $("#" + me.pre + "refseq").val(), false);
61978
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?gi=' + $("#" + me.pre + "gi").val(), '_blank');
61979
- window.open(hostUrl + '?refseq=' + $("#" + me.pre + "refseq").val(), '_blank');
62081
+ me.htmlCls.clickMenuCls.setLogCmd("load refseq " + $("#" + me.pre + "refseqid").val(), false);
62082
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?gi=' + $("#" + me.pre + "gi").val(), urlTarget);
62083
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62084
+ window.open(hostUrl + '?refseqid=' + $("#" + me.pre + "refseqid").val(), urlTarget);
61980
62085
  });
61981
62086
 
61982
- me.myEventCls.onIds("#" + me.pre + "gi", "keyup", function(e) { me.icn3d;
62087
+ me.myEventCls.onIds("#" + me.pre + "gi", "keyup", function(e) { let ic = me.icn3d;
61983
62088
  if (e.keyCode === 13) {
61984
62089
  e.preventDefault();
61985
62090
  if(!me.cfg.notebook) dialog.dialog( "close" );
61986
62091
  me.htmlCls.clickMenuCls.setLogCmd("load gi " + $("#" + me.pre + "gi").val(), false);
61987
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?gi=' + $("#" + me.pre + "gi").val(), '_blank');
61988
- window.open(hostUrl + '?gi=' + $("#" + me.pre + "gi").val(), '_blank');
62092
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?gi=' + $("#" + me.pre + "gi").val(), urlTarget);
62093
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62094
+ window.open(hostUrl + '?gi=' + $("#" + me.pre + "gi").val(), urlTarget);
61989
62095
  }
61990
62096
  });
61991
62097
 
61992
- me.myEventCls.onIds("#" + me.pre + "reload_uniprotid", "click", function(e) { me.icn3d;
62098
+ me.myEventCls.onIds("#" + me.pre + "reload_uniprotid", "click", function(e) { let ic = me.icn3d;
61993
62099
  e.preventDefault();
61994
62100
  if(!me.cfg.notebook) dialog.dialog( "close" );
61995
62101
  me.htmlCls.clickMenuCls.setLogCmd("load uniprotid " + $("#" + me.pre + "uniprotid").val(), false);
61996
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?uniprotid=' + $("#" + me.pre + "uniprotid").val(), '_blank');
61997
- window.open(hostUrl + '?uniprotid=' + $("#" + me.pre + "uniprotid").val(), '_blank');
62102
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?uniprotid=' + $("#" + me.pre + "uniprotid").val(), urlTarget);
62103
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62104
+ window.open(hostUrl + '?uniprotid=' + $("#" + me.pre + "uniprotid").val(), urlTarget);
61998
62105
  });
61999
62106
 
62000
- me.myEventCls.onIds("#" + me.pre + "uniprotid", "keyup", function(e) { me.icn3d;
62107
+ me.myEventCls.onIds("#" + me.pre + "uniprotid", "keyup", function(e) { let ic = me.icn3d;
62001
62108
  if (e.keyCode === 13) {
62002
62109
  e.preventDefault();
62003
62110
  if(!me.cfg.notebook) dialog.dialog( "close" );
62004
62111
  me.htmlCls.clickMenuCls.setLogCmd("load uniprotid " + $("#" + me.pre + "uniprotid").val(), false);
62005
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?uniprotid=' + $("#" + me.pre + "uniprotid").val(), '_blank');
62006
- window.open(hostUrl + '?uniprotid=' + $("#" + me.pre + "uniprotid").val(), '_blank');
62112
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?uniprotid=' + $("#" + me.pre + "uniprotid").val(), urlTarget);
62113
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62114
+ window.open(hostUrl + '?uniprotid=' + $("#" + me.pre + "uniprotid").val(), urlTarget);
62007
62115
  }
62008
62116
  });
62009
62117
 
62010
62118
  // },
62011
62119
  // clickReload_cid: function() {
62012
- me.myEventCls.onIds("#" + me.pre + "reload_cid", "click", function(e) { me.icn3d;
62120
+ me.myEventCls.onIds("#" + me.pre
62121
+ + "reload_cid", "click", function(e) { let ic = me.icn3d;
62013
62122
  e.preventDefault();
62014
62123
  if(!me.cfg.notebook) dialog.dialog( "close" );
62015
62124
  me.htmlCls.clickMenuCls.setLogCmd("load cid " + $("#" + me.pre + "cid").val(), false);
62016
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?cid=' + $("#" + me.pre + "cid").val(), '_blank');
62017
- window.open(hostUrl + '?cid=' + $("#" + me.pre + "cid").val(), '_blank');
62125
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?cid=' + $("#" + me.pre + "cid").val(), urlTarget);
62126
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62127
+ window.open(hostUrl + '?cid=' + $("#" + me.pre + "cid").val(), urlTarget);
62018
62128
  });
62019
62129
 
62020
- me.myEventCls.onIds("#" + me.pre + "cid", "keyup", function(e) { me.icn3d;
62130
+ me.myEventCls.onIds("#" + me.pre + "cid", "keyup", function(e) { let ic = me.icn3d;
62021
62131
  if (e.keyCode === 13) {
62022
62132
  e.preventDefault();
62023
62133
  if(!me.cfg.notebook) dialog.dialog( "close" );
62024
62134
  me.htmlCls.clickMenuCls.setLogCmd("load cid " + $("#" + me.pre + "cid").val(), false);
62025
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?cid=' + $("#" + me.pre + "cid").val(), '_blank');
62026
- window.open(hostUrl + '?cid=' + $("#" + me.pre + "cid").val(), '_blank');
62135
+ //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?cid=' + $("#" + me.pre + "cid").val(), urlTarget);
62136
+ let urlTarget = (ic.structures && Object.keys(ic.structures).length > 0) ? '_blank' : '_self';
62137
+ window.open(hostUrl + '?cid=' + $("#" + me.pre + "cid").val(), urlTarget);
62027
62138
  }
62028
62139
  });
62029
62140
 
@@ -67857,7 +67968,8 @@ class Vastplus {
67857
67968
 
67858
67969
  let pdbAjaxArray = [];
67859
67970
  for(let k = 0, kl = ic.refpdbArray.length; k < kl; ++k) {
67860
- let urlpdb = me.htmlCls.baseUrl + "icn3d/refpdb/" + ic.refpdbArray[k] + ".pdb";
67971
+ //let urlpdb = me.htmlCls.baseUrl + "icn3d/refpdb/" + ic.refpdbArray[k] + ".pdb";
67972
+ let urlpdb = me.htmlCls.baseUrl + "mmcifparser/mmcifparser.cgi?refpdbid=" + ic.refpdbArray[k];
67861
67973
 
67862
67974
  let pdbAjax = $.ajax({
67863
67975
  url: urlpdb,
@@ -67906,7 +68018,7 @@ class Vastplus {
67906
68018
  // align each 3D domain with reference structure
67907
68019
  let result = ic.domain3dCls.c2b_NewSplitChain(ic.chains[chainid]);
67908
68020
  let subdomains = result.subdomains;
67909
-
68021
+
67910
68022
  let domainAtomsArray = [];
67911
68023
  if(subdomains.length <= 1) {
67912
68024
  domainAtomsArray.push(ic.chains[chainid]);
@@ -67920,6 +68032,7 @@ class Vastplus {
67920
68032
  for(let k = 0, kl = subdomains.length; k < kl; ++k) {
67921
68033
  let domainAtoms = {};
67922
68034
  let segArray = subdomains[k];
68035
+
67923
68036
  for(let m = 0, ml = segArray.length; m < ml; m += 2) {
67924
68037
  let startResi = segArray[m];
67925
68038
  let endResi = segArray[m+1];
@@ -67933,10 +68046,9 @@ class Vastplus {
67933
68046
  domainAtomsArray.push(domainAtoms);
67934
68047
  }
67935
68048
  }
67936
-
68049
+
67937
68050
  for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
67938
68051
  let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
67939
-
67940
68052
  let domainid = chainid + '-' + k;
67941
68053
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
67942
68054
  let struct2 = "stru" + index;
@@ -68028,14 +68140,14 @@ console.log(domainid + ' TM-score: ' + domainid2score[domainid] + ' matched ' +
68028
68140
  ic.domainid2ig2kabat[domainid] = queryData[0].ig2kabat;
68029
68141
  }
68030
68142
  }
68031
-
68143
+
68032
68144
  // combine domainid into chainid
68033
68145
  for(let domainid in domainid2segs) {
68034
68146
  let chainid = domainid.split('-')[0];
68035
68147
  if(!chainid2segs[chainid]) chainid2segs[chainid] = [];
68036
68148
  chainid2segs[chainid] = chainid2segs[chainid].concat(domainid2segs[domainid]);
68037
68149
  }
68038
-
68150
+
68039
68151
  // assign ic.resid2refnum, ic.refnum2residArray, ic.chainsMapping
68040
68152
  if(!ic.resid2refnum) ic.resid2refnum = {};
68041
68153
  if(!ic.refnum2residArray) ic.refnum2residArray = {};
@@ -69798,7 +69910,7 @@ class iCn3DUI {
69798
69910
  //even when multiple iCn3D viewers are shown together.
69799
69911
  this.pre = this.cfg.divid + "_";
69800
69912
 
69801
- this.REVISION = '3.19.1';
69913
+ this.REVISION = '3.20.0';
69802
69914
 
69803
69915
  // In nodejs, iCn3D defines "window = {navigator: {}}"
69804
69916
  this.bNode = (Object.keys(window).length < 2) ? true : false;
@@ -70087,11 +70199,20 @@ iCn3DUI.prototype.show3DStructure = function(pdbStr) { let me = this;
70087
70199
  me.htmlCls.clickMenuCls.setLogCmd(ic.loadCmd, true);
70088
70200
  ic.mmdbParserCls.downloadGi(me.cfg.gi);
70089
70201
  }
70090
- else if(me.cfg.uniprotid !== undefined) {
70091
- ic.loadCmd = 'load uniprotid ' + me.cfg.uniprotid;
70092
- me.htmlCls.clickMenuCls.setLogCmd(ic.loadCmd, true);
70093
- ic.mmdbParserCls.downloadUniprotid(me.cfg.uniprotid);
70094
- }
70202
+ else if(me.cfg.refseqid !== undefined) {
70203
+ ic.inputid = me.cfg.refseqid;
70204
+
70205
+ ic.bNCBI = true;
70206
+ ic.loadCmd = 'load refseq ' + me.cfg.refseqid;
70207
+ me.htmlCls.clickMenuCls.setLogCmd(ic.loadCmd, true);
70208
+ ic.mmdbParserCls.downloadRefseq(me.cfg.refseqid);
70209
+ }
70210
+ // else if(me.cfg.proteinname !== undefined) {
70211
+ // ic.bNCBI = true;
70212
+ // ic.loadCmd = 'load proteinname ' + me.cfg.gi;
70213
+ // me.htmlCls.clickMenuCls.setLogCmd(ic.loadCmd, true);
70214
+ // ic.mmdbParserCls.downloadProteinname(me.cfg.proteinname);
70215
+ // }
70095
70216
  else if(me.cfg.blast_rep_id !== undefined) {
70096
70217
  ic.bNCBI = true;
70097
70218