icn3d 3.25.15 → 3.25.17

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
@@ -32255,7 +32255,8 @@ class Alternate {
32255
32255
  ic.drawCls.draw();
32256
32256
 
32257
32257
  ic.bShowHighlight = true;
32258
- ic.opts['rotationcenter'] = 'molecule center';
32258
+ //ic.opts['rotationcenter'] = 'molecule center';
32259
+ ic.opts['rotationcenter'] = 'highlight center';
32259
32260
  }
32260
32261
 
32261
32262
  alternateWrapper() { let ic = this.icn3d; ic.icn3dui;
@@ -35855,6 +35856,7 @@ class AnnoCddSite {
35855
35856
 
35856
35857
  for(let i = 0, il = dataArray.length; i < il; ++i) {
35857
35858
  //let data = (bSeq) ? dataArray[i][0] : dataArray[i];
35859
+ // somehow Node.js returned data in dataArray[i]
35858
35860
  let data = (me.bNode) ? dataArray[i] : dataArray[i].value;
35859
35861
 
35860
35862
  if(!data) continue;
@@ -42211,6 +42213,8 @@ class ShowSeq {
42211
42213
  refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
42212
42214
  currRefnum = parseInt(refnumStr);
42213
42215
  refnumLabelNoPostfix = currStrand + currRefnum;
42216
+
42217
+ currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
42214
42218
 
42215
42219
  let firstChar = refnumLabel.substr(0,1);
42216
42220
  if(!bStart && (firstChar == ' ' || firstChar == 'A' || firstChar == 'B')) { // start of a new IG domain
@@ -42227,7 +42231,26 @@ class ShowSeq {
42227
42231
  refnumLabel = undefined;
42228
42232
  }
42229
42233
  else {
42230
- if(parseInt(currResi) < parseInt(strandArray[strandCnt].startResi)) {
42234
+ let bBefore = false, bInRange= false, bAfter = false;
42235
+ // 100, 100A
42236
+ if(parseInt(currResi) == parseInt(strandArray[strandCnt].startResi) && currResi != strandArray[strandCnt].startResi) {
42237
+ bBefore = currResi < strandArray[strandCnt].startResi;
42238
+ }
42239
+ else {
42240
+ bBefore = parseInt(currResi) < parseInt(strandArray[strandCnt].startResi);
42241
+ }
42242
+
42243
+ // 100, 100A
42244
+ if(parseInt(currResi) == parseInt(strandArray[strandCnt].endResi) && currResi != strandArray[strandCnt].endResi) {
42245
+ bAfter = currResi > strandArray[strandCnt].endResi;
42246
+ }
42247
+ else {
42248
+ bAfter = parseInt(currResi) > parseInt(strandArray[strandCnt].endResi);
42249
+ }
42250
+
42251
+ bInRange = (!bBefore && !bAfter) ? true : false;
42252
+
42253
+ if(bBefore) {
42231
42254
  ic.residIgLoop[residueid] = 1;
42232
42255
 
42233
42256
  if(bBeforeAstrand) { // make it continuous to the 1st strand
@@ -42288,7 +42311,7 @@ class ShowSeq {
42288
42311
  }
42289
42312
  }
42290
42313
  }
42291
- else if(parseInt(currResi) >= parseInt(strandArray[strandCnt].startResi) && parseInt(currResi) <= parseInt(strandArray[strandCnt].endResi)) {
42314
+ else if(bInRange) {
42292
42315
  // not in loop any more if you assign ref numbers multiple times
42293
42316
  //delete ic.residIgLoop[residueid];
42294
42317
 
@@ -42316,7 +42339,7 @@ class ShowSeq {
42316
42339
  }
42317
42340
  }
42318
42341
  }
42319
- else if(parseInt(currResi) > parseInt(strandArray[strandCnt].endResi)) {
42342
+ else if(bAfter) {
42320
42343
  ic.residIgLoop[residueid] = 1;
42321
42344
 
42322
42345
  if(!bAfterGstrand) {
@@ -46832,8 +46855,10 @@ class AlignParser {
46832
46855
  let dataArray = await allPromise;
46833
46856
 
46834
46857
  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];
46858
+ // let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
46859
+ // let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
46860
+ let data3 = dataArray[0].value; //v3[0];
46861
+ let data4 = dataArray[1].value; //v4[0];
46837
46862
 
46838
46863
  if(data3.atoms !== undefined && data4.atoms !== undefined) {
46839
46864
  // ic.deferredOpm = $.Deferred(function() {
@@ -46995,7 +47020,8 @@ class AlignParser {
46995
47020
 
46996
47021
  let bFound = false;
46997
47022
  for(let i = 0, il = dataArray.length; i < il; ++i) {
46998
- let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47023
+ //let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47024
+ let opmdata = dataArray[i].value;
46999
47025
 
47000
47026
  if(!opmdata) continue;
47001
47027
 
@@ -47155,7 +47181,8 @@ class ChainalignParser {
47155
47181
 
47156
47182
  // modify the previous trans and rotation matrix
47157
47183
  for(let i = 0, il = dataArray.length; i < il; ++i) {
47158
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47184
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47185
+ let align = dataArray[i].value;//[0];
47159
47186
 
47160
47187
  let mmdbid_q = struArray[i];
47161
47188
  let index = indexArray[i];
@@ -47247,7 +47274,8 @@ class ChainalignParser {
47247
47274
 
47248
47275
  let bFoundAlignment = false;
47249
47276
  for(let i = 0, il = dataArray.length; i < il; ++i) {
47250
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47277
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
47278
+ let align = dataArray[i].value;//[0];
47251
47279
 
47252
47280
  let bEqualMmdbid = false;
47253
47281
  let bEqualChain = false;
@@ -47639,7 +47667,8 @@ class ChainalignParser {
47639
47667
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
47640
47668
  //var data2 = v2[0];
47641
47669
  // index = 0: the mmdb data of target
47642
- let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
47670
+ // let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
47671
+ let targetData = dataArray[0].value; //[0];
47643
47672
  let header = 'HEADER ' + mmdbid_t + '\n';
47644
47673
  if(isNaN(mmdbid_t) && mmdbid_t.length > 5) targetData = header + targetData;
47645
47674
 
@@ -47657,7 +47686,8 @@ class ChainalignParser {
47657
47686
  let queryDataArray = [];
47658
47687
 
47659
47688
  for(let index = 1, indexl = chainidArray.length; index < indexl; ++index) {
47660
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47689
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47690
+ let queryData = dataArray[index].value;//[0];
47661
47691
 
47662
47692
  let pos = chainidArray[index].indexOf('_');
47663
47693
  let mmdbid_q = chainidArray[index].substr(0, pos).toUpperCase();
@@ -47703,7 +47733,8 @@ class ChainalignParser {
47703
47733
  ic.qt_start_end[index-1] = undefined;
47704
47734
  }
47705
47735
  else {
47706
- let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
47736
+ // let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
47737
+ let align = dataArray[index2 - missedChainCnt].value;//[0];
47707
47738
 
47708
47739
  let bEqualMmdbid = (mmdbid_q == mmdbid_t);
47709
47740
  let bEqualChain = (chain_q == chain_t);
@@ -47921,7 +47952,8 @@ class ChainalignParser {
47921
47952
 
47922
47953
  let queryDataArray = [];
47923
47954
  for(let index = 0, indexl = structArray.length; index < indexl; ++index) {
47924
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47955
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
47956
+ let queryData = dataArray[index].value;//[0];
47925
47957
  let header = 'HEADER ' + structArray[index] + '\n';
47926
47958
  if(isNaN(structArray[index]) && structArray[index].length > 5) queryData = header + queryData;
47927
47959
 
@@ -50373,7 +50405,8 @@ class RealignParser {
50373
50405
  //var data2 = v2[0];
50374
50406
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
50375
50407
  // for(let index = 1, indexl = dataArray.length; index < indexl; ++index) {
50376
- let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
50408
+ // let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
50409
+ let data = dataArray[index].value;//[0];
50377
50410
  if(!data) continue;
50378
50411
 
50379
50412
  let fromStruct = chainidArray[index + 1].substr(0, chainidArray[index + 1].indexOf('_')); //.toUpperCase();
@@ -53912,7 +53945,10 @@ class SetSeqAlign {
53912
53945
  */
53913
53946
 
53914
53947
  let resid = chainid + '_' + resi;
53915
- return ic.residueId2Name[resid];
53948
+ let resn = ic.residueId2Name[resid];
53949
+ if(!resn) resn = '?';
53950
+
53951
+ return resn;
53916
53952
  }
53917
53953
 
53918
53954
  getResiAferAlign(chainid, bRealign, pos) { let ic = this.icn3d, me = ic.icn3dui;
@@ -62187,14 +62223,15 @@ class Dssp {
62187
62223
  }
62188
62224
  }
62189
62225
 
62190
- async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d, me = ic.icn3dui;
62226
+ async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d; ic.icn3dui;
62191
62227
  //var dataArray =(struArray.length == 1) ? [data] : data;
62192
62228
 
62193
62229
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
62194
62230
  //var data2 = v2[0];
62195
62231
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
62196
62232
  //let ssHash = dataArray[index][0];
62197
- let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
62233
+ //let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
62234
+ let ssHash = dataArray[index].value;
62198
62235
 
62199
62236
  if(ssHash !== undefined && JSON.stringify(ssHash).indexOf('Oops there was a problem') === -1) {
62200
62237
  for(let chainNum in ic.chainsSeq) {
@@ -62476,16 +62513,17 @@ class Dssp {
62476
62513
  pdbAjaxArray.push(pdbAjax);
62477
62514
  }
62478
62515
 
62479
- // try {
62516
+ try {
62480
62517
  let allPromise = Promise.allSettled(pdbAjaxArray);
62481
62518
  ic.pdbDataArray = await allPromise;
62482
62519
  await thisClass.parseRefPdbData(ic.pdbDataArray);
62483
- // }
62484
- // catch(err) {
62485
- // if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62486
- // //var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62487
- // return;
62488
- // }
62520
+ }
62521
+ catch(err) {
62522
+ if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62523
+ //var aaa = 1; //alert("Error in retrieveing reference PDB data...");
62524
+ return;
62525
+ }
62526
+
62489
62527
  // }
62490
62528
  // }
62491
62529
  }
@@ -62562,12 +62600,13 @@ class Dssp {
62562
62600
  for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
62563
62601
  let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
62564
62602
  // ig strand for any subset will have the same k, use the number of residue to separate them
62565
- let domainid = chainid + '-' + k + '_' + domainAtomsArray[k].length;
62603
+ let domainid = chainid + '-' + k + '_' + Object.keys(domainAtomsArray[k]).length;
62566
62604
  ic.domainid2pdb[domainid] = pdb_target;
62567
62605
 
62568
62606
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
62569
62607
  let struct2 = ic.defaultPdbId + index;
62570
- let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
62608
+ //let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
62609
+ let pdb_query = dataArray[index].value; //[0];
62571
62610
  let header = 'HEADER ' + struct2 + '\n';
62572
62611
  pdb_query = header + pdb_query;
62573
62612
 
@@ -62581,7 +62620,7 @@ class Dssp {
62581
62620
  }
62582
62621
  }
62583
62622
 
62584
- // try {
62623
+ try {
62585
62624
  let dataArray2 = [];
62586
62625
  let allPromise = Promise.allSettled(ajaxArray);
62587
62626
  dataArray2 = await allPromise;
@@ -62590,12 +62629,12 @@ class Dssp {
62590
62629
  await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
62591
62630
 
62592
62631
  /// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
62593
- // }
62594
- // catch(err) {
62595
- // if(!me.bNode) console.log("Error in aligning with TM-align...");
62596
- // //console.log("Error in aligning with TM-align...");
62597
- // return;
62598
- // }
62632
+ }
62633
+ catch(err) {
62634
+ if(!me.bNode) console.log("Error in aligning with TM-align...");
62635
+ //console.log("Error in aligning with TM-align...");
62636
+ return;
62637
+ }
62599
62638
  }
62600
62639
 
62601
62640
  async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
@@ -62619,7 +62658,8 @@ class Dssp {
62619
62658
  let minResidues = 20;
62620
62659
 
62621
62660
  for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
62622
- let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
62661
+ //let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
62662
+ let queryData = dataArray[i].value; //[0];
62623
62663
 
62624
62664
  if(!queryData) {
62625
62665
  if(!me.bNode) console.log("The alignment data for " + domainidpairArray[i] + " is unavailable...");
@@ -62711,7 +62751,8 @@ class Dssp {
62711
62751
  let pdb_target = ic.domainid2pdb[domainid];
62712
62752
  for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
62713
62753
  let struct2 = ic.defaultPdbId + index;
62714
- let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
62754
+ //let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
62755
+ let pdb_query = ic.pdbDataArray[index].value; //[0];
62715
62756
  let header = 'HEADER ' + struct2 + '\n';
62716
62757
  pdb_query = header + pdb_query;
62717
62758