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.module.js CHANGED
@@ -36756,6 +36756,7 @@ class AnnoCddSite {
36756
36756
 
36757
36757
  for(let i = 0, il = dataArray.length; i < il; ++i) {
36758
36758
  //let data = (bSeq) ? dataArray[i][0] : dataArray[i];
36759
+ // somehow Node.js returned data in dataArray[i]
36759
36760
  let data = (me.bNode) ? dataArray[i] : dataArray[i].value;
36760
36761
 
36761
36762
  if(!data) continue;
@@ -47733,8 +47734,10 @@ class AlignParser {
47733
47734
  let dataArray = await allPromise;
47734
47735
 
47735
47736
  let data2 = data;
47736
- let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
47737
- let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
47737
+ // let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
47738
+ // let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
47739
+ let data3 = dataArray[0].value; //v3[0];
47740
+ let data4 = dataArray[1].value; //v4[0];
47738
47741
 
47739
47742
  if(data3.atoms !== undefined && data4.atoms !== undefined) {
47740
47743
  // ic.deferredOpm = $.Deferred(function() {
@@ -47896,7 +47899,8 @@ class AlignParser {
47896
47899
 
47897
47900
  let bFound = false;
47898
47901
  for(let i = 0, il = dataArray.length; i < il; ++i) {
47899
- let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47902
+ //let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47903
+ let opmdata = dataArray[i].value;
47900
47904
 
47901
47905
  if(!opmdata) continue;
47902
47906
 
@@ -48056,7 +48060,8 @@ class ChainalignParser {
48056
48060
 
48057
48061
  // modify the previous trans and rotation matrix
48058
48062
  for(let i = 0, il = dataArray.length; i < il; ++i) {
48059
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48063
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48064
+ let align = dataArray[i].value;//[0];
48060
48065
 
48061
48066
  let mmdbid_q = struArray[i];
48062
48067
  let index = indexArray[i];
@@ -48148,7 +48153,8 @@ class ChainalignParser {
48148
48153
 
48149
48154
  let bFoundAlignment = false;
48150
48155
  for(let i = 0, il = dataArray.length; i < il; ++i) {
48151
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48156
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48157
+ let align = dataArray[i].value;//[0];
48152
48158
 
48153
48159
  let bEqualMmdbid = false;
48154
48160
  let bEqualChain = false;
@@ -48540,7 +48546,8 @@ class ChainalignParser {
48540
48546
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
48541
48547
  //var data2 = v2[0];
48542
48548
  // index = 0: the mmdb data of target
48543
- let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
48549
+ // let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
48550
+ let targetData = dataArray[0].value; //[0];
48544
48551
  let header = 'HEADER ' + mmdbid_t + '\n';
48545
48552
  if(isNaN(mmdbid_t) && mmdbid_t.length > 5) targetData = header + targetData;
48546
48553
 
@@ -48558,7 +48565,8 @@ class ChainalignParser {
48558
48565
  let queryDataArray = [];
48559
48566
 
48560
48567
  for(let index = 1, indexl = chainidArray.length; index < indexl; ++index) {
48561
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48568
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48569
+ let queryData = dataArray[index].value;//[0];
48562
48570
 
48563
48571
  let pos = chainidArray[index].indexOf('_');
48564
48572
  let mmdbid_q = chainidArray[index].substr(0, pos).toUpperCase();
@@ -48604,7 +48612,8 @@ class ChainalignParser {
48604
48612
  ic.qt_start_end[index-1] = undefined;
48605
48613
  }
48606
48614
  else {
48607
- let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
48615
+ // let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
48616
+ let align = dataArray[index2 - missedChainCnt].value;//[0];
48608
48617
 
48609
48618
  let bEqualMmdbid = (mmdbid_q == mmdbid_t);
48610
48619
  let bEqualChain = (chain_q == chain_t);
@@ -48822,7 +48831,8 @@ class ChainalignParser {
48822
48831
 
48823
48832
  let queryDataArray = [];
48824
48833
  for(let index = 0, indexl = structArray.length; index < indexl; ++index) {
48825
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48834
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48835
+ let queryData = dataArray[index].value;//[0];
48826
48836
  let header = 'HEADER ' + structArray[index] + '\n';
48827
48837
  if(isNaN(structArray[index]) && structArray[index].length > 5) queryData = header + queryData;
48828
48838
 
@@ -51274,7 +51284,8 @@ class RealignParser {
51274
51284
  //var data2 = v2[0];
51275
51285
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
51276
51286
  // for(let index = 1, indexl = dataArray.length; index < indexl; ++index) {
51277
- let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
51287
+ // let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
51288
+ let data = dataArray[index].value;//[0];
51278
51289
  if(!data) continue;
51279
51290
 
51280
51291
  let fromStruct = chainidArray[index + 1].substr(0, chainidArray[index + 1].indexOf('_')); //.toUpperCase();
@@ -53124,13 +53135,15 @@ class ParserUtils {
53124
53135
  let allPromise = Promise.allSettled([prms1, prms2]);
53125
53136
  let dataArray = await allPromise;
53126
53137
 
53127
- ic.interactionData1 = (me.bNode) ? dataArray[0] : dataArray[0].value;
53138
+ // ic.interactionData1 = (me.bNode) ? dataArray[0] : dataArray[0].value;
53139
+ ic.interactionData1 = dataArray[0].value;
53128
53140
  ic.html2ddgm = '';
53129
53141
  ic.diagram2dCls.draw2Ddgm(ic.interactionData1, mmdbid1, 0);
53130
53142
  if(me.cfg.show2d) me.htmlCls.dialogCls.openDlg('dl_2ddgm', 'Interactions');
53131
53143
 
53132
53144
 
53133
- ic.interactionData2 = (me.bNode) ? dataArray[1] : dataArray[1].value;
53145
+ // ic.interactionData2 = (me.bNode) ? dataArray[1] : dataArray[1].value;
53146
+ ic.interactionData2 = dataArray[1].value;
53134
53147
  ic.diagram2dCls.draw2Ddgm(ic.interactionData2, mmdbid2, 1);
53135
53148
 
53136
53149
  ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote(true);
@@ -53178,7 +53191,8 @@ class ParserUtils {
53178
53191
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
53179
53192
  //var data2 = v2[0];
53180
53193
  for(let index = 0, indexl = chainidArray.length; index < indexl; ++index) {
53181
- let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
53194
+ // let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
53195
+ let data = dataArray[index].value;//[0];
53182
53196
  let mmdbid = chainidArray[index].substr(0, chainidArray[index].indexOf('_'));
53183
53197
 
53184
53198
  ic.diagram2dCls.draw2Ddgm(data, mmdbid, 0);
@@ -56870,7 +56884,8 @@ class Vastplus {
56870
56884
 
56871
56885
  let queryDataArray = [];
56872
56886
  for(let index = 0, indexl = chainidpairArray.length; index < indexl; ++index) {
56873
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
56887
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
56888
+ let queryData = dataArray[index].value; //[0];
56874
56889
 
56875
56890
  queryDataArray.push(queryData);
56876
56891
  /*
@@ -63084,14 +63099,15 @@ class Dssp {
63084
63099
  }
63085
63100
  }
63086
63101
 
63087
- async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d, me = ic.icn3dui;
63102
+ async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d; ic.icn3dui;
63088
63103
  //var dataArray =(struArray.length == 1) ? [data] : data;
63089
63104
 
63090
63105
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
63091
63106
  //var data2 = v2[0];
63092
63107
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
63093
63108
  //let ssHash = dataArray[index][0];
63094
- let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
63109
+ //let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
63110
+ let ssHash = dataArray[index].value;
63095
63111
 
63096
63112
  if(ssHash !== undefined && JSON.stringify(ssHash).indexOf('Oops there was a problem') === -1) {
63097
63113
  for(let chainNum in ic.chainsSeq) {
@@ -63373,16 +63389,17 @@ class Dssp {
63373
63389
  pdbAjaxArray.push(pdbAjax);
63374
63390
  }
63375
63391
 
63376
- // try {
63392
+ try {
63377
63393
  let allPromise = Promise.allSettled(pdbAjaxArray);
63378
63394
  ic.pdbDataArray = await allPromise;
63379
63395
  await thisClass.parseRefPdbData(ic.pdbDataArray);
63380
- // }
63381
- // catch(err) {
63382
- // if(!me.bNode) alert("Error in retrieveing reference PDB data...");
63383
- // //alert("Error in retrieveing reference PDB data...");
63384
- // return;
63385
- // }
63396
+ }
63397
+ catch(err) {
63398
+ if(!me.bNode) alert("Error in retrieveing reference PDB data...");
63399
+ //alert("Error in retrieveing reference PDB data...");
63400
+ return;
63401
+ }
63402
+
63386
63403
  // }
63387
63404
  // }
63388
63405
  }
@@ -63459,12 +63476,13 @@ class Dssp {
63459
63476
  for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
63460
63477
  let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
63461
63478
  // ig strand for any subset will have the same k, use the number of residue to separate them
63462
- let domainid = chainid + '-' + k + '_' + domainAtomsArray[k].length;
63479
+ let domainid = chainid + '-' + k + '_' + Object.keys(domainAtomsArray[k]).length;
63463
63480
  ic.domainid2pdb[domainid] = pdb_target;
63464
63481
 
63465
63482
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
63466
63483
  let struct2 = ic.defaultPdbId + index;
63467
- let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
63484
+ //let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
63485
+ let pdb_query = dataArray[index].value; //[0];
63468
63486
  let header = 'HEADER ' + struct2 + '\n';
63469
63487
  pdb_query = header + pdb_query;
63470
63488
 
@@ -63478,7 +63496,7 @@ class Dssp {
63478
63496
  }
63479
63497
  }
63480
63498
 
63481
- // try {
63499
+ try {
63482
63500
  let dataArray2 = [];
63483
63501
  let allPromise = Promise.allSettled(ajaxArray);
63484
63502
  dataArray2 = await allPromise;
@@ -63487,12 +63505,12 @@ class Dssp {
63487
63505
  await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
63488
63506
 
63489
63507
  /// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
63490
- // }
63491
- // catch(err) {
63492
- // if(!me.bNode) console.log("Error in aligning with TM-align...");
63493
- // //console.log("Error in aligning with TM-align...");
63494
- // return;
63495
- // }
63508
+ }
63509
+ catch(err) {
63510
+ if(!me.bNode) console.log("Error in aligning with TM-align...");
63511
+ //console.log("Error in aligning with TM-align...");
63512
+ return;
63513
+ }
63496
63514
  }
63497
63515
 
63498
63516
  async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
@@ -63516,7 +63534,8 @@ class Dssp {
63516
63534
  let minResidues = 20;
63517
63535
 
63518
63536
  for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
63519
- let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
63537
+ //let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
63538
+ let queryData = dataArray[i].value; //[0];
63520
63539
 
63521
63540
  if(!queryData) {
63522
63541
  if(!me.bNode) console.log("The alignment data for " + domainidpairArray[i] + " is unavailable...");
@@ -63608,7 +63627,8 @@ class Dssp {
63608
63627
  let pdb_target = ic.domainid2pdb[domainid];
63609
63628
  for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
63610
63629
  let struct2 = ic.defaultPdbId + index;
63611
- let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
63630
+ //let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
63631
+ let pdb_query = ic.pdbDataArray[index].value; //[0];
63612
63632
  let header = 'HEADER ' + struct2 + '\n';
63613
63633
  pdb_query = header + pdb_query;
63614
63634
 
@@ -72154,25 +72174,35 @@ iCn3DUI.prototype.show3DStructure = async function(pdbStr) { let me = this;
72154
72174
  let data = await me.getAjaxPromise(url, 'json', false, 'The RID ' + me.cfg.rid + ' may have expired...');
72155
72175
 
72156
72176
  for(let q = 0, ql = data.BlastOutput2.length; q < ql; ++q) {
72157
- if(data.BlastOutput2[q].report.results.search.query_id != me.cfg.query_id) continue;
72158
- let hitArray = data.BlastOutput2[q].report.results.search.hits;
72177
+
72178
+ let hitArray;
72179
+ if(data.BlastOutput2[q].report.results.iterations) { // psi-blast may have "iterations". Use the last iteration.
72180
+ let nIterations = data.BlastOutput2[q].report.results.iterations.length;
72181
+ if(data.BlastOutput2[q].report.results.iterations[nIterations - 1].search.query_id != me.cfg.query_id) continue;
72182
+ hitArray = data.BlastOutput2[q].report.results.iterations[nIterations - 1].search.hits;
72183
+ }
72184
+ else { // blastp may not have "iterations"
72185
+ if(data.BlastOutput2[q].report.results.search.query_id != me.cfg.query_id) continue;
72186
+ hitArray = data.BlastOutput2[q].report.results.search.hits;
72187
+ }
72188
+
72159
72189
  let qseq = undefined;
72160
72190
  for(let i = 0, il = hitArray.length; i < il; ++i) {
72161
- let hit = hitArray[i];
72162
- let bFound = false;
72163
- for(let j = 0, jl = hit.description.length; j < jl; ++j) {
72164
- let acc = hit.description[j].accession;
72165
- if(acc == me.cfg.blast_rep_id) {
72166
- bFound = true;
72167
- break;
72191
+ let hit = hitArray[i];
72192
+ let bFound = false;
72193
+ for(let j = 0, jl = hit.description.length; j < jl; ++j) {
72194
+ let acc = hit.description[j].accession;
72195
+ if(acc == me.cfg.blast_rep_id) {
72196
+ bFound = true;
72197
+ break;
72198
+ }
72199
+ }
72200
+ if(bFound) {
72201
+ qseq = hit.hsps[0].qseq;
72202
+ //remove gap '-'
72203
+ qseq = qseq.replace(/-/g, '');
72204
+ break;
72168
72205
  }
72169
- }
72170
- if(bFound) {
72171
- qseq = hit.hsps[0].qseq;
72172
- //remove gap '-'
72173
- qseq = qseq.replace(/-/g, '');
72174
- break;
72175
- }
72176
72206
  }
72177
72207
  if(qseq !== undefined) me.cfg.query_id = qseq;
72178
72208
  ic.inputid = me.cfg.query_id + '_' + me.cfg.blast_rep_id;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icn3d",
3
- "version": "3.25.14",
3
+ "version": "3.25.16",
4
4
  "main": "./icn3d.js",
5
5
  "exports": {
6
6
  ".": {