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.module.js CHANGED
@@ -33156,7 +33156,8 @@ class Alternate {
33156
33156
  ic.drawCls.draw();
33157
33157
 
33158
33158
  ic.bShowHighlight = true;
33159
- ic.opts['rotationcenter'] = 'molecule center';
33159
+ //ic.opts['rotationcenter'] = 'molecule center';
33160
+ ic.opts['rotationcenter'] = 'highlight center';
33160
33161
  }
33161
33162
 
33162
33163
  alternateWrapper() { let ic = this.icn3d; ic.icn3dui;
@@ -36756,6 +36757,7 @@ class AnnoCddSite {
36756
36757
 
36757
36758
  for(let i = 0, il = dataArray.length; i < il; ++i) {
36758
36759
  //let data = (bSeq) ? dataArray[i][0] : dataArray[i];
36760
+ // somehow Node.js returned data in dataArray[i]
36759
36761
  let data = (me.bNode) ? dataArray[i] : dataArray[i].value;
36760
36762
 
36761
36763
  if(!data) continue;
@@ -43112,6 +43114,8 @@ class ShowSeq {
43112
43114
  refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
43113
43115
  currRefnum = parseInt(refnumStr);
43114
43116
  refnumLabelNoPostfix = currStrand + currRefnum;
43117
+
43118
+ currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
43115
43119
 
43116
43120
  let firstChar = refnumLabel.substr(0,1);
43117
43121
  if(!bStart && (firstChar == ' ' || firstChar == 'A' || firstChar == 'B')) { // start of a new IG domain
@@ -43128,7 +43132,26 @@ class ShowSeq {
43128
43132
  refnumLabel = undefined;
43129
43133
  }
43130
43134
  else {
43131
- if(parseInt(currResi) < parseInt(strandArray[strandCnt].startResi)) {
43135
+ let bBefore = false, bInRange= false, bAfter = false;
43136
+ // 100, 100A
43137
+ if(parseInt(currResi) == parseInt(strandArray[strandCnt].startResi) && currResi != strandArray[strandCnt].startResi) {
43138
+ bBefore = currResi < strandArray[strandCnt].startResi;
43139
+ }
43140
+ else {
43141
+ bBefore = parseInt(currResi) < parseInt(strandArray[strandCnt].startResi);
43142
+ }
43143
+
43144
+ // 100, 100A
43145
+ if(parseInt(currResi) == parseInt(strandArray[strandCnt].endResi) && currResi != strandArray[strandCnt].endResi) {
43146
+ bAfter = currResi > strandArray[strandCnt].endResi;
43147
+ }
43148
+ else {
43149
+ bAfter = parseInt(currResi) > parseInt(strandArray[strandCnt].endResi);
43150
+ }
43151
+
43152
+ bInRange = (!bBefore && !bAfter) ? true : false;
43153
+
43154
+ if(bBefore) {
43132
43155
  ic.residIgLoop[residueid] = 1;
43133
43156
 
43134
43157
  if(bBeforeAstrand) { // make it continuous to the 1st strand
@@ -43189,7 +43212,7 @@ class ShowSeq {
43189
43212
  }
43190
43213
  }
43191
43214
  }
43192
- else if(parseInt(currResi) >= parseInt(strandArray[strandCnt].startResi) && parseInt(currResi) <= parseInt(strandArray[strandCnt].endResi)) {
43215
+ else if(bInRange) {
43193
43216
  // not in loop any more if you assign ref numbers multiple times
43194
43217
  //delete ic.residIgLoop[residueid];
43195
43218
 
@@ -43217,7 +43240,7 @@ class ShowSeq {
43217
43240
  }
43218
43241
  }
43219
43242
  }
43220
- else if(parseInt(currResi) > parseInt(strandArray[strandCnt].endResi)) {
43243
+ else if(bAfter) {
43221
43244
  ic.residIgLoop[residueid] = 1;
43222
43245
 
43223
43246
  if(!bAfterGstrand) {
@@ -47733,8 +47756,10 @@ class AlignParser {
47733
47756
  let dataArray = await allPromise;
47734
47757
 
47735
47758
  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];
47759
+ // let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
47760
+ // let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
47761
+ let data3 = dataArray[0].value; //v3[0];
47762
+ let data4 = dataArray[1].value; //v4[0];
47738
47763
 
47739
47764
  if(data3.atoms !== undefined && data4.atoms !== undefined) {
47740
47765
  // ic.deferredOpm = $.Deferred(function() {
@@ -47896,7 +47921,8 @@ class AlignParser {
47896
47921
 
47897
47922
  let bFound = false;
47898
47923
  for(let i = 0, il = dataArray.length; i < il; ++i) {
47899
- let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47924
+ //let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
47925
+ let opmdata = dataArray[i].value;
47900
47926
 
47901
47927
  if(!opmdata) continue;
47902
47928
 
@@ -48056,7 +48082,8 @@ class ChainalignParser {
48056
48082
 
48057
48083
  // modify the previous trans and rotation matrix
48058
48084
  for(let i = 0, il = dataArray.length; i < il; ++i) {
48059
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48085
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48086
+ let align = dataArray[i].value;//[0];
48060
48087
 
48061
48088
  let mmdbid_q = struArray[i];
48062
48089
  let index = indexArray[i];
@@ -48148,7 +48175,8 @@ class ChainalignParser {
48148
48175
 
48149
48176
  let bFoundAlignment = false;
48150
48177
  for(let i = 0, il = dataArray.length; i < il; ++i) {
48151
- let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48178
+ // let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
48179
+ let align = dataArray[i].value;//[0];
48152
48180
 
48153
48181
  let bEqualMmdbid = false;
48154
48182
  let bEqualChain = false;
@@ -48540,7 +48568,8 @@ class ChainalignParser {
48540
48568
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
48541
48569
  //var data2 = v2[0];
48542
48570
  // index = 0: the mmdb data of target
48543
- let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
48571
+ // let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
48572
+ let targetData = dataArray[0].value; //[0];
48544
48573
  let header = 'HEADER ' + mmdbid_t + '\n';
48545
48574
  if(isNaN(mmdbid_t) && mmdbid_t.length > 5) targetData = header + targetData;
48546
48575
 
@@ -48558,7 +48587,8 @@ class ChainalignParser {
48558
48587
  let queryDataArray = [];
48559
48588
 
48560
48589
  for(let index = 1, indexl = chainidArray.length; index < indexl; ++index) {
48561
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48590
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48591
+ let queryData = dataArray[index].value;//[0];
48562
48592
 
48563
48593
  let pos = chainidArray[index].indexOf('_');
48564
48594
  let mmdbid_q = chainidArray[index].substr(0, pos).toUpperCase();
@@ -48604,7 +48634,8 @@ class ChainalignParser {
48604
48634
  ic.qt_start_end[index-1] = undefined;
48605
48635
  }
48606
48636
  else {
48607
- let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
48637
+ // let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
48638
+ let align = dataArray[index2 - missedChainCnt].value;//[0];
48608
48639
 
48609
48640
  let bEqualMmdbid = (mmdbid_q == mmdbid_t);
48610
48641
  let bEqualChain = (chain_q == chain_t);
@@ -48822,7 +48853,8 @@ class ChainalignParser {
48822
48853
 
48823
48854
  let queryDataArray = [];
48824
48855
  for(let index = 0, indexl = structArray.length; index < indexl; ++index) {
48825
- let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48856
+ // let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
48857
+ let queryData = dataArray[index].value;//[0];
48826
48858
  let header = 'HEADER ' + structArray[index] + '\n';
48827
48859
  if(isNaN(structArray[index]) && structArray[index].length > 5) queryData = header + queryData;
48828
48860
 
@@ -51274,7 +51306,8 @@ class RealignParser {
51274
51306
  //var data2 = v2[0];
51275
51307
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
51276
51308
  // for(let index = 1, indexl = dataArray.length; index < indexl; ++index) {
51277
- let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
51309
+ // let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
51310
+ let data = dataArray[index].value;//[0];
51278
51311
  if(!data) continue;
51279
51312
 
51280
51313
  let fromStruct = chainidArray[index + 1].substr(0, chainidArray[index + 1].indexOf('_')); //.toUpperCase();
@@ -54813,7 +54846,10 @@ class SetSeqAlign {
54813
54846
  */
54814
54847
 
54815
54848
  let resid = chainid + '_' + resi;
54816
- return ic.residueId2Name[resid];
54849
+ let resn = ic.residueId2Name[resid];
54850
+ if(!resn) resn = '?';
54851
+
54852
+ return resn;
54817
54853
  }
54818
54854
 
54819
54855
  getResiAferAlign(chainid, bRealign, pos) { let ic = this.icn3d, me = ic.icn3dui;
@@ -63088,14 +63124,15 @@ class Dssp {
63088
63124
  }
63089
63125
  }
63090
63126
 
63091
- async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d, me = ic.icn3dui;
63127
+ async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d; ic.icn3dui;
63092
63128
  //var dataArray =(struArray.length == 1) ? [data] : data;
63093
63129
 
63094
63130
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]
63095
63131
  //var data2 = v2[0];
63096
63132
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
63097
63133
  //let ssHash = dataArray[index][0];
63098
- let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
63134
+ //let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
63135
+ let ssHash = dataArray[index].value;
63099
63136
 
63100
63137
  if(ssHash !== undefined && JSON.stringify(ssHash).indexOf('Oops there was a problem') === -1) {
63101
63138
  for(let chainNum in ic.chainsSeq) {
@@ -63377,16 +63414,17 @@ class Dssp {
63377
63414
  pdbAjaxArray.push(pdbAjax);
63378
63415
  }
63379
63416
 
63380
- // try {
63417
+ try {
63381
63418
  let allPromise = Promise.allSettled(pdbAjaxArray);
63382
63419
  ic.pdbDataArray = await allPromise;
63383
63420
  await thisClass.parseRefPdbData(ic.pdbDataArray);
63384
- // }
63385
- // catch(err) {
63386
- // if(!me.bNode) alert("Error in retrieveing reference PDB data...");
63387
- // //alert("Error in retrieveing reference PDB data...");
63388
- // return;
63389
- // }
63421
+ }
63422
+ catch(err) {
63423
+ if(!me.bNode) alert("Error in retrieveing reference PDB data...");
63424
+ //alert("Error in retrieveing reference PDB data...");
63425
+ return;
63426
+ }
63427
+
63390
63428
  // }
63391
63429
  // }
63392
63430
  }
@@ -63463,12 +63501,13 @@ class Dssp {
63463
63501
  for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
63464
63502
  let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
63465
63503
  // ig strand for any subset will have the same k, use the number of residue to separate them
63466
- let domainid = chainid + '-' + k + '_' + domainAtomsArray[k].length;
63504
+ let domainid = chainid + '-' + k + '_' + Object.keys(domainAtomsArray[k]).length;
63467
63505
  ic.domainid2pdb[domainid] = pdb_target;
63468
63506
 
63469
63507
  for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
63470
63508
  let struct2 = ic.defaultPdbId + index;
63471
- let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
63509
+ //let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
63510
+ let pdb_query = dataArray[index].value; //[0];
63472
63511
  let header = 'HEADER ' + struct2 + '\n';
63473
63512
  pdb_query = header + pdb_query;
63474
63513
 
@@ -63482,7 +63521,7 @@ class Dssp {
63482
63521
  }
63483
63522
  }
63484
63523
 
63485
- // try {
63524
+ try {
63486
63525
  let dataArray2 = [];
63487
63526
  let allPromise = Promise.allSettled(ajaxArray);
63488
63527
  dataArray2 = await allPromise;
@@ -63491,12 +63530,12 @@ class Dssp {
63491
63530
  await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
63492
63531
 
63493
63532
  /// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
63494
- // }
63495
- // catch(err) {
63496
- // if(!me.bNode) console.log("Error in aligning with TM-align...");
63497
- // //console.log("Error in aligning with TM-align...");
63498
- // return;
63499
- // }
63533
+ }
63534
+ catch(err) {
63535
+ if(!me.bNode) console.log("Error in aligning with TM-align...");
63536
+ //console.log("Error in aligning with TM-align...");
63537
+ return;
63538
+ }
63500
63539
  }
63501
63540
 
63502
63541
  async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
@@ -63520,7 +63559,8 @@ class Dssp {
63520
63559
  let minResidues = 20;
63521
63560
 
63522
63561
  for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
63523
- let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
63562
+ //let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
63563
+ let queryData = dataArray[i].value; //[0];
63524
63564
 
63525
63565
  if(!queryData) {
63526
63566
  if(!me.bNode) console.log("The alignment data for " + domainidpairArray[i] + " is unavailable...");
@@ -63612,7 +63652,8 @@ class Dssp {
63612
63652
  let pdb_target = ic.domainid2pdb[domainid];
63613
63653
  for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
63614
63654
  let struct2 = ic.defaultPdbId + index;
63615
- let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
63655
+ //let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
63656
+ let pdb_query = ic.pdbDataArray[index].value; //[0];
63616
63657
  let header = 'HEADER ' + struct2 + '\n';
63617
63658
  pdb_query = header + pdb_query;
63618
63659
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icn3d",
3
- "version": "3.25.15",
3
+ "version": "3.25.17",
4
4
  "main": "./icn3d.js",
5
5
  "exports": {
6
6
  ".": {