icn3d 3.25.14 → 3.25.16

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
@@ -35855,6 +35855,7 @@ class AnnoCddSite {
35855
35855
 
35856
35856
  for(let i = 0, il = dataArray.length; i < il; ++i) {
35857
35857
  //let data = (bSeq) ? dataArray[i][0] : dataArray[i];
35858
+ // somehow Node.js returned data in dataArray[i]
35858
35859
  let data = (me.bNode) ? dataArray[i] : dataArray[i].value;
35859
35860
 
35860
35861
  if(!data) continue;
@@ -46832,8 +46833,10 @@ class AlignParser {
46832
46833
  let dataArray = await allPromise;
46833
46834
 
46834
46835
  let data2 = data;
46835
- let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
46836
- let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
46836
+ // let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
46837
+ // let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
46838
+ let data3 = dataArray[0].value; //v3[0];
46839
+ let data4 = dataArray[1].value; //v4[0];
46837
46840
 
46838
46841
  if(data3.atoms !== undefined && data4.atoms !== undefined) {
46839
46842
  // ic.deferredOpm = $.Deferred(function() {
@@ -46995,7 +46998,8 @@ class AlignParser {
46995
46998
 
46996
46999
  let bFound = false;
46997
47000
  for(let i = 0, il = dataArray.length; i < il; ++i) {
46998
- let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47001
+ //let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47002
+ let opmdata = dataArray[i].value;
46999
47003
 
47000
47004
  if(!opmdata) continue;
47001
47005
 
@@ -47155,7 +47159,8 @@ class ChainalignParser {
47155
47159
 
47156
47160
  // modify the previous trans and rotation matrix
47157
47161
  for(let i = 0, il = dataArray.length; i < il; ++i) {
47158
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47162
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47163
+ let align = dataArray[i].value;//[0];
47159
47164
 
47160
47165
  let mmdbid_q = struArray[i];
47161
47166
  let index = indexArray[i];
@@ -47247,7 +47252,8 @@ class ChainalignParser {
47247
47252
 
47248
47253
  let bFoundAlignment = false;
47249
47254
  for(let i = 0, il = dataArray.length; i < il; ++i) {
47250
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47255
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47256
+ let align = dataArray[i].value;//[0];
47251
47257
 
47252
47258
  let bEqualMmdbid = false;
47253
47259
  let bEqualChain = false;
@@ -47639,7 +47645,8 @@ class ChainalignParser {
47639
47645
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
47640
47646
  //var data2 = v2[0];
47641
47647
  // index = 0: the mmdb data of target
47642
- let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
47648
+ // let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
47649
+ let targetData = dataArray[0].value; //[0];
47643
47650
  let header = 'HEADER ' + mmdbid_t + '\n';
47644
47651
  if(isNaN(mmdbid_t) && mmdbid_t.length > 5) targetData = header + targetData;
47645
47652
 
@@ -47657,7 +47664,8 @@ class ChainalignParser {
47657
47664
  let queryDataArray = [];
47658
47665
 
47659
47666
  for(let index = 1, indexl = chainidArray.length; index < indexl; ++index) {
47660
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47667
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47668
+ let queryData = dataArray[index].value;//[0];
47661
47669
 
47662
47670
  let pos = chainidArray[index].indexOf('_');
47663
47671
  let mmdbid_q = chainidArray[index].substr(0, pos).toUpperCase();
@@ -47703,7 +47711,8 @@ class ChainalignParser {
47703
47711
  ic.qt_start_end[index-1] = undefined;
47704
47712
  }
47705
47713
  else {
47706
- let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
47714
+ // let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
47715
+ let align = dataArray[index2 - missedChainCnt].value;//[0];
47707
47716
 
47708
47717
  let bEqualMmdbid = (mmdbid_q == mmdbid_t);
47709
47718
  let bEqualChain = (chain_q == chain_t);
@@ -47921,7 +47930,8 @@ class ChainalignParser {
47921
47930
 
47922
47931
  let queryDataArray = [];
47923
47932
  for(let index = 0, indexl = structArray.length; index < indexl; ++index) {
47924
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47933
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47934
+ let queryData = dataArray[index].value;//[0];
47925
47935
  let header = 'HEADER ' + structArray[index] + '\n';
47926
47936
  if(isNaN(structArray[index]) && structArray[index].length > 5) queryData = header + queryData;
47927
47937
 
@@ -50373,7 +50383,8 @@ class RealignParser {
50373
50383
  //var data2 = v2[0];
50374
50384
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
50375
50385
  // for(let index = 1, indexl = dataArray.length; index < indexl; ++index) {
50376
- let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
50386
+ // let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
50387
+ let data = dataArray[index].value;//[0];
50377
50388
  if(!data) continue;
50378
50389
 
50379
50390
  let fromStruct = chainidArray[index + 1].substr(0, chainidArray[index + 1].indexOf('_')); //.toUpperCase();
@@ -52223,13 +52234,15 @@ class ParserUtils {
52223
52234
  let allPromise = Promise.allSettled([prms1, prms2]);
52224
52235
  let dataArray = await allPromise;
52225
52236
 
52226
- ic.interactionData1 = (me.bNode) ? dataArray[0] : dataArray[0].value;
52237
+ // ic.interactionData1 = (me.bNode) ? dataArray[0] : dataArray[0].value;
52238
+ ic.interactionData1 = dataArray[0].value;
52227
52239
  ic.html2ddgm = '';
52228
52240
  ic.diagram2dCls.draw2Ddgm(ic.interactionData1, mmdbid1, 0);
52229
52241
  if(me.cfg.show2d) me.htmlCls.dialogCls.openDlg('dl_2ddgm', 'Interactions');
52230
52242
 
52231
52243
 
52232
- ic.interactionData2 = (me.bNode) ? dataArray[1] : dataArray[1].value;
52244
+ // ic.interactionData2 = (me.bNode) ? dataArray[1] : dataArray[1].value;
52245
+ ic.interactionData2 = dataArray[1].value;
52233
52246
  ic.diagram2dCls.draw2Ddgm(ic.interactionData2, mmdbid2, 1);
52234
52247
 
52235
52248
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote(true);
@@ -52277,7 +52290,8 @@ class ParserUtils {
52277
52290
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
52278
52291
  //var data2 = v2[0];
52279
52292
  for(let index = 0, indexl = chainidArray.length; index < indexl; ++index) {
52280
- let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
52293
+ // let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
52294
+ let data = dataArray[index].value;//[0];
52281
52295
  let mmdbid = chainidArray[index].substr(0, chainidArray[index].indexOf('_'));
52282
52296
 
52283
52297
  ic.diagram2dCls.draw2Ddgm(data, mmdbid, 0);
@@ -55969,7 +55983,8 @@ class Vastplus {
55969
55983
 
55970
55984
  let queryDataArray = [];
55971
55985
  for(let index = 0, indexl = chainidpairArray.length; index < indexl; ++index) {
55972
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
55986
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
55987
+ let queryData = dataArray[index].value; //[0];
55973
55988
 
55974
55989
  queryDataArray.push(queryData);
55975
55990
  /*
@@ -62183,14 +62198,15 @@ class Dssp {
62183
62198
  }
62184
62199
  }
62185
62200
 
62186
- async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d, me = ic.icn3dui;
62201
+ async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d; ic.icn3dui;
62187
62202
  //var dataArray =(struArray.length == 1) ? [data] : data;
62188
62203
 
62189
62204
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
62190
62205
  //var data2 = v2[0];
62191
62206
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
62192
62207
  //let ssHash = dataArray[index][0];
62193
- let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
62208
+ //let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
62209
+ let ssHash = dataArray[index].value;
62194
62210
 
62195
62211
  if(ssHash !== undefined && JSON.stringify(ssHash).indexOf('Oops there was a problem') === -1) {
62196
62212
  for(let chainNum in ic.chainsSeq) {
@@ -62472,16 +62488,17 @@ class Dssp {
62472
62488
  pdbAjaxArray.push(pdbAjax);
62473
62489
  }
62474
62490
 
62475
- // try {
62491
+ try {
62476
62492
  let allPromise = Promise.allSettled(pdbAjaxArray);
62477
62493
  ic.pdbDataArray = await allPromise;
62478
62494
  await thisClass.parseRefPdbData(ic.pdbDataArray);
62479
- // }
62480
- // catch(err) {
62481
- // if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62482
- // //var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62483
- // return;
62484
- // }
62495
+ }
62496
+ catch(err) {
62497
+ if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62498
+ //var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62499
+ return;
62500
+ }
62501
+
62485
62502
  // }
62486
62503
  // }
62487
62504
  }
@@ -62558,12 +62575,13 @@ class Dssp {
62558
62575
  for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
62559
62576
  let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
62560
62577
  // ig strand for any subset will have the same k, use the number of residue to separate them
62561
- let domainid = chainid + '-' + k + '_' + domainAtomsArray[k].length;
62578
+ let domainid = chainid + '-' + k + '_' + Object.keys(domainAtomsArray[k]).length;
62562
62579
  ic.domainid2pdb[domainid] = pdb_target;
62563
62580
 
62564
62581
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
62565
62582
  let struct2 = ic.defaultPdbId + index;
62566
- let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
62583
+ //let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
62584
+ let pdb_query = dataArray[index].value; //[0];
62567
62585
  let header = 'HEADER ' + struct2 + '\n';
62568
62586
  pdb_query = header + pdb_query;
62569
62587
 
@@ -62577,7 +62595,7 @@ class Dssp {
62577
62595
  }
62578
62596
  }
62579
62597
 
62580
- // try {
62598
+ try {
62581
62599
  let dataArray2 = [];
62582
62600
  let allPromise = Promise.allSettled(ajaxArray);
62583
62601
  dataArray2 = await allPromise;
@@ -62586,12 +62604,12 @@ class Dssp {
62586
62604
  await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
62587
62605
 
62588
62606
  /// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
62589
- // }
62590
- // catch(err) {
62591
- // if(!me.bNode) console.log("Error in aligning with TM-align...");
62592
- // //console.log("Error in aligning with TM-align...");
62593
- // return;
62594
- // }
62607
+ }
62608
+ catch(err) {
62609
+ if(!me.bNode) console.log("Error in aligning with TM-align...");
62610
+ //console.log("Error in aligning with TM-align...");
62611
+ return;
62612
+ }
62595
62613
  }
62596
62614
 
62597
62615
  async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
@@ -62615,7 +62633,8 @@ class Dssp {
62615
62633
  let minResidues = 20;
62616
62634
 
62617
62635
  for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
62618
- let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
62636
+ //let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
62637
+ let queryData = dataArray[i].value; //[0];
62619
62638
 
62620
62639
  if(!queryData) {
62621
62640
  if(!me.bNode) console.log("The alignment data for " + domainidpairArray[i] + " is unavailable...");
@@ -62707,7 +62726,8 @@ class Dssp {
62707
62726
  let pdb_target = ic.domainid2pdb[domainid];
62708
62727
  for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
62709
62728
  let struct2 = ic.defaultPdbId + index;
62710
- let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
62729
+ //let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
62730
+ let pdb_query = ic.pdbDataArray[index].value; //[0];
62711
62731
  let header = 'HEADER ' + struct2 + '\n';
62712
62732
  pdb_query = header + pdb_query;
62713
62733
 
@@ -71253,25 +71273,35 @@ iCn3DUI.prototype.show3DStructure = async function(pdbStr) { let me = this;
71253
71273
  let data = await me.getAjaxPromise(url, 'json', false, 'The RID ' + me.cfg.rid + ' may have expired...');
71254
71274
 
71255
71275
  for(let q = 0, ql = data.BlastOutput2.length; q < ql; ++q) {
71256
- if(data.BlastOutput2[q].report.results.search.query_id != me.cfg.query_id) continue;
71257
- let hitArray = data.BlastOutput2[q].report.results.search.hits;
71276
+
71277
+ let hitArray;
71278
+ if(data.BlastOutput2[q].report.results.iterations) { // psi-blast may have "iterations". Use the last iteration.
71279
+ let nIterations = data.BlastOutput2[q].report.results.iterations.length;
71280
+ if(data.BlastOutput2[q].report.results.iterations[nIterations - 1].search.query_id != me.cfg.query_id) continue;
71281
+ hitArray = data.BlastOutput2[q].report.results.iterations[nIterations - 1].search.hits;
71282
+ }
71283
+ else { // blastp may not have "iterations"
71284
+ if(data.BlastOutput2[q].report.results.search.query_id != me.cfg.query_id) continue;
71285
+ hitArray = data.BlastOutput2[q].report.results.search.hits;
71286
+ }
71287
+
71258
71288
  let qseq = undefined;
71259
71289
  for(let i = 0, il = hitArray.length; i < il; ++i) {
71260
- let hit = hitArray[i];
71261
- let bFound = false;
71262
- for(let j = 0, jl = hit.description.length; j < jl; ++j) {
71263
- let acc = hit.description[j].accession;
71264
- if(acc == me.cfg.blast_rep_id) {
71265
- bFound = true;
71266
- break;
71290
+ let hit = hitArray[i];
71291
+ let bFound = false;
71292
+ for(let j = 0, jl = hit.description.length; j < jl; ++j) {
71293
+ let acc = hit.description[j].accession;
71294
+ if(acc == me.cfg.blast_rep_id) {
71295
+ bFound = true;
71296
+ break;
71297
+ }
71298
+ }
71299
+ if(bFound) {
71300
+ qseq = hit.hsps[0].qseq;
71301
+ //remove gap '-'
71302
+ qseq = qseq.replace(/-/g, '');
71303
+ break;
71267
71304
  }
71268
- }
71269
- if(bFound) {
71270
- qseq = hit.hsps[0].qseq;
71271
- //remove gap '-'
71272
- qseq = qseq.replace(/-/g, '');
71273
- break;
71274
- }
71275
71305
  }
71276
71306
  if(qseq !== undefined) me.cfg.query_id = qseq;
71277
71307
  ic.inputid = me.cfg.query_id + '_' + me.cfg.blast_rep_id;