icn3d 3.30.5 → 3.30.6

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
@@ -12918,7 +12918,7 @@ class SetDialog {
12918
12918
  tpl2strandsig['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'] = "A--- A-- A- A B C C' C'' D E F G";
12919
12919
  tpl2strandsig['FAB-HEAVY_5esv_C1-n2'] = "A B C D E F G";
12920
12920
  tpl2strandsig['FAB-HEAVY_5esv_V-n1'] = "A B C C' C'' D E F G";
12921
- tpl2strandsig['FAB-LIGHT_5esv_C1-n2'] = "A B C C' E F G";
12921
+ tpl2strandsig['FAB-LIGHT_5esv_C1-n2'] = "A B C C' D E F G";
12922
12922
  tpl2strandsig['FAB-LIGHT_5esv_V-n1'] = "A A' B C C' C'' D E F G";
12923
12923
  tpl2strandsig['GHR_1axiB_human_C1-n1'] = "A B C C' D E F G";
12924
12924
  tpl2strandsig['ICOS_6x4gA_human_V'] = "A B C C' C'' D E F G";
@@ -38894,7 +38894,7 @@ class AnnoIg {
38894
38894
  // titleArray.push(igType + confidance + ' (TM:' + parseFloat(tmscore).toFixed(2) + ')');
38895
38895
  // fullTitleArray.push(igType + confidance + ' (TM:' + parseFloat(tmscore).toFixed(2) + '), template: ' + info.refpdbname + ', Seq. identity: ' + parseFloat(info.seqid).toFixed(2) + ', aligned residues: ' + info.nresAlign);
38896
38896
 
38897
- let igType = (parseFloat(tmscore) < 0.75 ) ? 'Ig' : ic.ref2igtype[info.refpdbname];
38897
+ let igType = (parseFloat(tmscore) < ic.refnumCls.TMThreshold ) ? 'Ig' : ic.ref2igtype[info.refpdbname];
38898
38898
  titleArray.push(igType + ' (TM:' + parseFloat(tmscore).toFixed(2) + ')');
38899
38899
  fullTitleArray.push(igType + ' (TM:' + parseFloat(tmscore).toFixed(2) + '), template: ' + info.refpdbname + ', Seq. identity: ' + parseFloat(info.seqid).toFixed(2) + ', aligned residues: ' + info.nresAlign);
38900
38900
 
@@ -66729,6 +66729,8 @@ class Dssp {
66729
66729
  class Refnum {
66730
66730
  constructor(icn3d) {
66731
66731
  this.icn3d = icn3d;
66732
+ this.TMThreshold = 0.85;
66733
+ this.topClusters = 5;
66732
66734
  }
66733
66735
 
66734
66736
  async hideIgRefNum() { let ic = this.icn3d; ic.icn3dui;
@@ -67309,17 +67311,20 @@ class Dssp {
67309
67311
  if(bBstrand && bCstrand && bEstrand && bFstrand) break;
67310
67312
  }
67311
67313
 
67312
- if(!(bBstrand && bCstrand && bEstrand && bFstrand) || !(bBSheet && bCSheet && bESheet && bFSheet)) {
67313
- // if(!(bBstrand && bCstrand && bEstrand && bFstrand)) {
67314
- if(!me.bNode && !(bBstrand && bCstrand && bEstrand && bFstrand)) console.log("Some of the Ig strands B, C, E, F are missing in the domain " + domainid + "...");
67315
- if(!me.bNode && !(bBSheet && bCSheet && bESheet && bFSheet)) console.log("Some of the Ig strands B, C, E, F are not beta sheets...");
67316
- // if(!me.bNode && (BCnt < 3 || CCnt < 3 || ECnt < 3 || FCnt < 3)) console.log("Some of the Ig strands B, C, E, F are missing in the domain " + domainid + "...");
67317
- if(ic.domainid2refpdbname[domainid][0] == refpdbname) {
67318
- delete ic.domainid2refpdbname[domainid];
67319
- delete ic.domainid2score[domainid];
67314
+ // if(refpdbname != 'CD19_6al5A_human-n1') { // relax for CD19
67315
+ if(!(bBstrand && bCstrand && bEstrand && bFstrand) || !(bBSheet && bCSheet && bESheet && bFSheet)) {
67316
+ // if(!(bBstrand && bCstrand && bEstrand && bFstrand)) {
67317
+ if(!me.bNode && !(bBstrand && bCstrand && bEstrand && bFstrand)) console.log("Some of the Ig strands B, C, E, F are missing in the domain " + domainid + "...");
67318
+ if(!me.bNode && !(bBSheet && bCSheet && bESheet && bFSheet)) console.log("Some of the Ig strands B, C, E, F are not beta sheets...");
67319
+ // if(!me.bNode && (BCnt < 3 || CCnt < 3 || ECnt < 3 || FCnt < 3)) console.log("Some of the Ig strands B, C, E, F are missing in the domain " + domainid + "...");
67320
+ if(ic.domainid2refpdbname[domainid][0] == refpdbname) {
67321
+ delete ic.domainid2refpdbname[domainid];
67322
+ delete ic.domainid2score[domainid];
67323
+ }
67324
+ continue;
67320
67325
  }
67321
- continue;
67322
- }
67326
+ // }
67327
+
67323
67328
  }
67324
67329
 
67325
67330
  if(!bRound1) {
@@ -67348,7 +67353,8 @@ class Dssp {
67348
67353
  ic.domainid2score[domainid] = queryData[0].score + '_' + queryData[0].frac_identical + '_' + queryData[0].num_res ;
67349
67354
 
67350
67355
  if(bRound1) {
67351
- ic.domainid2refpdbname[domainid] = score > 0.75 ? [refpdbname] : ['all_templates'];
67356
+ // ic.domainid2refpdbname[domainid] = score > 0.75 ? [refpdbname] : ['all_templates'];
67357
+ ic.domainid2refpdbname[domainid] = score >= this.TMThreshold ? [refpdbname] : ['all_templates'];
67352
67358
  }
67353
67359
  else {
67354
67360
  ic.domainid2refpdbname[domainid] = [refpdbname];
@@ -67367,7 +67373,7 @@ class Dssp {
67367
67373
  }
67368
67374
  }
67369
67375
 
67370
- // combine the top four clusters for the 2nd round alignment
67376
+ // combine the top clusters for the 2nd round alignment
67371
67377
  if(bRound1) {
67372
67378
  for(let domainid in domainid2refpdbnamelist) {
67373
67379
  if(!me.bNode && ic.domainid2refpdbname[domainid][0] == 'all_templates') {
@@ -67376,8 +67382,8 @@ class Dssp {
67376
67382
  refpdbnameList.sort(function(a, b) {
67377
67383
  return refpdbname2score[b] - refpdbname2score[a]
67378
67384
  });
67379
- // top 4 templates
67380
- ic.domainid2refpdbname[domainid] = refpdbnameList.slice(0,4);
67385
+ // top templates
67386
+ ic.domainid2refpdbname[domainid] = refpdbnameList.slice(0, this.topClusters);
67381
67387
  }
67382
67388
  }
67383
67389
  }
@@ -67614,8 +67620,8 @@ class Dssp {
67614
67620
  let seg = segArray[i];
67615
67621
  if(!seg) continue;
67616
67622
 
67617
- let qStart = seg.q_start;
67618
- parseInt(seg.q_start);
67623
+ seg.q_start;
67624
+ let qStartInt = parseInt(seg.q_start);
67619
67625
  if(isNaN(seg.q_start)) seg.q_start.substr(seg.q_start.length - 1, 1);
67620
67626
 
67621
67627
  // one item in "seq"
@@ -67628,7 +67634,8 @@ class Dssp {
67628
67634
  let resid = chainid + '_' + seg.t_start;
67629
67635
  //let refnum = qStartInt.toString() + postfix;
67630
67636
  //let refnum = qStart + postfix;
67631
- let refnum = qStart;
67637
+ //let refnum = qStart;
67638
+ let refnum = qStartInt;
67632
67639
 
67633
67640
  let refnumLabel = this.getLabelFromRefnum(refnum);
67634
67641
  currStrand = (refnumLabel) ? refnumLabel.replace(new RegExp(refnum,'g'), '') : undefined;
@@ -68043,7 +68050,7 @@ class Dssp {
68043
68050
  if(!ic.chainid2refpdbname[chnid]) return false;
68044
68051
 
68045
68052
  // auto-generate ref numbers for loops
68046
- let currStrand = '', prevStrand = '';
68053
+ let currStrand = '', prevStrand = '', prevValidStrand = '';
68047
68054
  let refnumLabel, refnumStr_ori, refnumStr, postfix, strandPostfix, refnum, refnum3c, refnum2c;
68048
68055
  let bExtendedStrand = false, bSecThird9 = false;
68049
68056
 
@@ -68107,7 +68114,8 @@ class Dssp {
68107
68114
  if(!bSecThird9 || (bExtendedStrand && !bSecThird9)) {
68108
68115
  let lastTwo = parseInt(refnum.toString().substr(refnum.toString().length - 2, 2));
68109
68116
 
68110
- if(currStrand != prevStrand) { // reset currCnt
68117
+ // reset currCnt
68118
+ if(currStrand != prevStrand && currStrand != prevValidStrand) { // sometimes the same resid appear several times, e.g, 7M7B_H_135
68111
68119
  bFoundAnchor = false;
68112
68120
 
68113
68121
  if(strandHash[currStrand + postfix]) {
@@ -68209,6 +68217,8 @@ class Dssp {
68209
68217
  }
68210
68218
  }
68211
68219
  }
68220
+
68221
+ prevValidStrand = currStrand;
68212
68222
  }
68213
68223
  }
68214
68224
 
@@ -68296,6 +68306,7 @@ class Dssp {
68296
68306
  for(let il = strandArray.length, i = il - 1; i >= 0; --i) {
68297
68307
  // let strandTmp = strandArray[i].strand.substr(0, 1);
68298
68308
  let strandTmp = strandArray[i].strand;
68309
+
68299
68310
  if(strandTmp != 'G' && strandArray[i].endRefnum - strandArray[i].startRefnum + 1 < 3) { // remove the strand
68300
68311
  if(i != il - 1) { // modify
68301
68312
  strandArray[i + 1].loopResCnt += strandArray[i].loopResCnt + parseInt(strandArray[i].endResi) - parseInt(strandArray[i].startResi) + 1;
@@ -68312,7 +68323,7 @@ class Dssp {
68312
68323
  let domainid = ic.resid2domainid[resid];
68313
68324
  removeDomainidHash[domainid] = 1;
68314
68325
  continue;
68315
- }
68326
+ }
68316
68327
  }
68317
68328
  }
68318
68329
 
@@ -68429,10 +68440,12 @@ class Dssp {
68429
68440
  let halfLen = parseInt(len / 2.0 + 0.5);
68430
68441
 
68431
68442
  if(loopCnt <= halfLen) {
68432
- currRefnum = strandArray[prevStrandCnt].endRefnum + loopCnt;
68433
- refnumLabelNoPostfix = strandArray[prevStrandCnt].strand + currRefnum;
68434
- refnumLabel = refnumLabelNoPostfix + strandArray[prevStrandCnt].strandPostfix;
68435
- domainid = strandArray[prevStrandCnt].domainid;
68443
+ if(strandArray[prevStrandCnt]) {
68444
+ currRefnum = strandArray[prevStrandCnt].endRefnum + loopCnt;
68445
+ refnumLabelNoPostfix = strandArray[prevStrandCnt].strand + currRefnum;
68446
+ refnumLabel = refnumLabelNoPostfix + strandArray[prevStrandCnt].strandPostfix;
68447
+ domainid = strandArray[prevStrandCnt].domainid;
68448
+ }
68436
68449
  }
68437
68450
  else {
68438
68451
  currRefnum = strandArray[strandCnt].startRefnum - len + loopCnt - 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icn3d",
3
- "version": "3.30.5",
3
+ "version": "3.30.6",
4
4
  "main": "./icn3d.js",
5
5
  "exports": {
6
6
  ".": {