icn3d 3.29.10 → 3.29.11

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
@@ -11913,12 +11913,17 @@ class SetDialog {
11913
11913
 
11914
11914
  //html += me.htmlCls.setHtmlCls.getOptionHtml(['0', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100'], 3);
11915
11915
  let group2tpl = {};
11916
- group2tpl['V'] = ['FAB-HEAVY_5esv_V-n1', 'FAB-LIGHT_5esv_V-n1', 'VNAR_1t6vN_shark_V', 'TCRa_6jxrm_human_V-n1', 'VISTA_6oilA_human_V', 'CD8a_1cd8A_human_V', 'PD1_4zqkB_human_V', 'ICOS_6x4gA_human_V', 'CD28_1yjdC_human_V', 'PDL1_4z18B_human_V-n1', 'CD2_1hnfA_human_V-n1', 'LAG3_7tzgD_human_V-n1'];
11917
- group2tpl['C1'] = ['FAB-LIGHT_5esv_C1-n2', 'GHR_1axiB_human_FN3-n1', 'VTCN1_Q7Z7D3_human_V-n2', 'B2Microglobulin_7phrL_human_C1', 'FAB-HEAVY_5esv_C1-n2', 'MHCIa_7phrH_human_C1', 'TCRa_6jxrm_human_C1-n2'];
11918
- group2tpl['C2'] = ['CD2_1hnfA_human_C2-n2', 'Siglec3_5j0bB_human_C2-n2', 'LAG3_7tzgD_human_C2-n2', 'Contactin1_3s97C_human_C2-n2'];
11919
- group2tpl['Iset'] = ['BTLA_2aw2A_human_Iset', 'Palladin_2dm3A_human_Iset-n1', 'Titin_4uowM_human_Unk-n152', 'JAM1_1nbqA_human_VorIset-n2', 'CD19_6al5A_human_C2orV-n1'];
11920
- group2tpl['FN3'] = ['InsulinR_8guyE_human_FN3-n1', 'IL6Rb_1bquB_human_FN3-n3', 'Sidekick2_1wf5A_human_FN3-n7', 'InsulinR_8guyE_human_FN3-n2', 'Contactin1_2ee2A_human_FN3-n9', 'IL6Rb_1bquB_human_FN3-n2'];
11921
- group2tpl['Other'] = ['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4', 'CoAtomerGamma1_1r4xA_human', 'TP34_2o6cA_bacteria', 'RBPJ_6py8C_human_Unk-n2', 'TP47_1o75A_bacteria', 'C3_2qkiD_human_n1', 'BArrestin1_4jqiA_rat_n1', 'RBPJ_6py8C_human_Unk-n1', 'CuZnSuperoxideDismutase_1hl5C_human', 'TEAD1_3kysC_human', 'ASF1A_2iijA_human', 'MPT63_1lmiA_bacteria', 'NaCaExchanger_2fwuA_dog_n2', 'ORF7a_1xakA_virus', 'ECadherin_4zt1A_human_n2', 'NaKATPaseTransporterBeta_2zxeB_spurdogshark', 'LaminAC_1ifrA_human', 'IsdA_2iteA_bacteria'];
11916
+ group2tpl['V'] = ['CD28_1yjdC_human_V', 'CD2_1hnfA_human_V-n1', 'CD8a_1cd8A_human_V', 'FAB-HEAVY_5esv_V-n1', 'FAB-LIGHT_5esv_V-n1', 'ICOS_6x4gA_human_V', 'LAG3_7tzgD_human_V-n1', 'PDL1_4z18B_human_V-n1', 'PD1_4zqkB_human_V', 'TCRa_6jxrm_human_V-n1', 'VISTA_6oilA_human_V', 'VNAR_1t6vN_shark_V'];
11917
+ group2tpl['C1'] = ['B2Microglobulin_7phrL_human_C1', 'FAB-LIGHT_5esv_C1-n2', 'FAB-HEAVY_5esv_C1-n2', 'GHR_1axiB_human_FN3-n1', 'MHCIa_7phrH_human_C1', 'TCRa_6jxrm_human_C1-n2', 'VTCN1_Q7Z7D3_human_V-n2'];
11918
+ group2tpl['C2'] = ['CD2_1hnfA_human_C2-n2', 'Contactin1_3s97C_human_C2-n2', 'LAG3_7tzgD_human_C2-n2', 'Siglec3_5j0bB_human_C2-n2'];
11919
+ group2tpl['I'] = ['BTLA_2aw2A_human_Iset', 'CD19_6al5A_human_C2orV-n1', 'JAM1_1nbqA_human_VorIset-n2', 'Palladin_2dm3A_human_Iset-n1', 'Titin_4uowM_human_Unk-n152'];
11920
+ group2tpl['E'] = ['ASF1A_2iijA_human', 'CoAtomerGamma1_1r4xA_human', 'Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4', 'IsdA_2iteA_bacteria', 'MPT63_1lmiA_bacteria', 'NaCaExchanger_2fwuA_dog_n2', 'NaKATPaseTransporterBeta_2zxeB_spurdogshark', 'TP34_2o6cA_bacteria', 'TP47_1o75A_bacteria', 'TEAD1_3kysC_human'];
11921
+
11922
+ group2tpl['FN3'] = ['Contactin1_2ee2A_human_FN3-n9', 'IL6Rb_1bquB_human_FN3-n2', 'IL6Rb_1bquB_human_FN3-n3', 'InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2', 'Sidekick2_1wf5A_human_FN3-n7'];
11923
+
11924
+ group2tpl['FN3-like'] = ['BArrestin1_4jqiA_rat_n1', 'C3_2qkiD_human_n1', 'RBPJ_6py8C_human_Unk-n1', 'RBPJ_6py8C_human_Unk-n2'];
11925
+
11926
+ group2tpl['Other'] = ['CuZnSuperoxideDismutase_1hl5C_human', 'ECadherin_4zt1A_human_n2', 'LaminAC_1ifrA_human', 'ORF7a_1xakA_virus'];
11922
11927
 
11923
11928
  for(let group in group2tpl) {
11924
11929
  html += "<optgroup label='" + group + "'>";
@@ -11972,10 +11977,10 @@ class SetDialog {
11972
11977
  html += "<td></td>";
11973
11978
  html += "</tr><tr>";
11974
11979
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_ig'>Ig Domains" + me.htmlCls.space2 + "</span></td>";
11975
- */
11980
+
11976
11981
  html += "<td></td>";
11977
11982
  html += "</tr></table></div></div>";
11978
-
11983
+ */
11979
11984
  return html;
11980
11985
  }
11981
11986
  }
@@ -36765,7 +36770,8 @@ class AnnoCddSite {
36765
36770
 
36766
36771
  //var setname = chnid + "_" + domain + "_" + index + "_" + r; //chnid + "_" + type + "_" + index + "_" + r;
36767
36772
  let setname = chnid + "_" + domain;
36768
- if(type != 'domain') setname += "_" + index + "_" + r; // + acc2domain[acc];
36773
+ // if(type != 'domain') setname += "_" + index + "_" + r;
36774
+ if(type != 'domain') setname = chnid + "_" + index + "_" + r + "_" + domain;
36769
36775
 
36770
36776
  if(type == 'domain') pssmid2fromArray[pssmid] = fromArray;
36771
36777
  if(type == 'domain') pssmid2toArray[pssmid] = toArray;
@@ -38225,11 +38231,11 @@ class AnnoIg {
38225
38231
  htmlTmp += '<span class="icn3d-residueNum"></span>';
38226
38232
  }
38227
38233
  else if(kabat_or_imgt == 1) {
38228
- htmlTmp += '<div class="icn3d-annoTitle" anno="0" title="Kabat Reference Numbers ' + refStruTitle + '">Kabat Ref. No.</div>';
38234
+ htmlTmp += '<div class="icn3d-annoTitle" anno="0" title="Kabat Reference Numbers">Kabat Ref. No.</div>';
38229
38235
  htmlTmp += '<span class="icn3d-residueNum"></span>';
38230
38236
  }
38231
38237
  else if(kabat_or_imgt == 2) {
38232
- htmlTmp += '<div class="icn3d-annoTitle" anno="0" title="IMGT Reference Numbers ' + refStruTitle + '">IMGT Ref. No.</div>';
38238
+ htmlTmp += '<div class="icn3d-annoTitle" anno="0" title="IMGT Reference Numbers">IMGT Ref. No.</div>';
38233
38239
  htmlTmp += '<span class="icn3d-residueNum"></span>';
38234
38240
  }
38235
38241
  else {
@@ -38256,6 +38262,7 @@ class AnnoIg {
38256
38262
  let igArray = ic.chain2igArray[chnid];
38257
38263
  if(igArray.length == 0) return {html: '', html2: '', html3: ''};
38258
38264
  let rangeArray = [], titleArray = [], fullTitleArray = [], domainArray = [];
38265
+
38259
38266
  for(let i = 0, il = igArray.length; i < il; ++i) {
38260
38267
  let domainid = igArray[i].domainid;
38261
38268
  let info = ic.domainid2info[domainid];
@@ -39657,12 +39664,16 @@ class Domain3d {
39657
39664
 
39658
39665
  // this.elements from the this.top of the this.stack
39659
39666
  //elts = &this.elements[this.stack[this.top - 1]];
39667
+
39660
39668
  for(i = this.stack[this.top - 1], il = this.elements.length; i < il; ++i) {
39661
39669
  elts.push(this.elements[i]);
39662
39670
  }
39663
39671
 
39664
39672
  // generate the partition based on the cut //
39665
- for (i = ne = ne0 = ne1 = 0, prt = prt0, t = -1; i < k; i++) {
39673
+ // for (i = ne = ne0 = ne1 = 0, prt = prt0, t = -1; i < k; i++) {
39674
+ let bAtZero = true;
39675
+ prt = prt0;
39676
+ for (i = ne = ne0 = ne1 = 0, t = -1; i < k; i++) {
39666
39677
  // write the this.elements into prt //
39667
39678
  for (j = t + 1; j <= cut[i]; j++)
39668
39679
  prt[ne++] = elts[j];
@@ -39670,15 +39681,20 @@ class Domain3d {
39670
39681
  t = cut[i];
39671
39682
 
39672
39683
  // switch the partition //
39673
- if (prt == prt0) {
39684
+ // if (prt == prt0) {
39685
+ if (bAtZero) {
39674
39686
  ne0 = ne;
39675
39687
  prt = prt1;
39676
39688
  ne = ne1;
39689
+
39690
+ bAtZero = false;
39677
39691
  }
39678
39692
  else {
39679
39693
  ne1 = ne;
39680
39694
  prt = prt0;
39681
39695
  ne = ne0;
39696
+
39697
+ bAtZero = true;
39682
39698
  }
39683
39699
  }
39684
39700
 
@@ -39686,7 +39702,8 @@ class Domain3d {
39686
39702
  for (j = t + 1; j < n; j++)
39687
39703
  prt[ne++] = elts[j];
39688
39704
 
39689
- if (prt == prt0)
39705
+ // if (prt == prt0)
39706
+ if (bAtZero)
39690
39707
  ne0 = ne;
39691
39708
  else
39692
39709
  ne1 = ne;
@@ -40355,6 +40372,8 @@ class Domain3d {
40355
40372
  let ss1 = parseInt(ssPair[0]);
40356
40373
  let ss2 = parseInt(ssPair[1]);
40357
40374
 
40375
+ if(ctable[pair] < this.min_contacts) ctable[pair] = 0;
40376
+
40358
40377
  // both are sheets
40359
40378
  // min number of contacts: this.min_contacts
40360
40379
  if(substruct[ss1 - 1].Sheet && substruct[ss2 - 1].Sheet && ctable[pair] >= this.min_contacts ) {
@@ -40365,7 +40384,7 @@ class Domain3d {
40365
40384
  sheetNeighbor[ss2][ss1] = 1;
40366
40385
  }
40367
40386
  }
40368
-
40387
+
40369
40388
  //https://www.geeksforgeeks.org/number-groups-formed-graph-friends/
40370
40389
  let existing_groups = 0;
40371
40390
  let sheet2sheetnum = {};
@@ -40388,12 +40407,13 @@ class Domain3d {
40388
40407
  // get sheet2sheetnum
40389
40408
  // each neighboring sheet will be represented by the sheet with the smallest sse
40390
40409
  for(let groupnum in this.groupnum2sheet) {
40391
- let ssArray = this.groupnum2sheet[groupnum].sort();
40410
+ let ssArray = this.groupnum2sheet[groupnum].sort(function(a, b){return a-b});
40392
40411
  for(let i = 0, il = ssArray.length; i < il; ++i) {
40393
40412
  sheet2sheetnum[ssArray[i]] = ssArray[0];
40394
40413
  }
40395
40414
  }
40396
40415
 
40416
+ let invalidSheethash = {};
40397
40417
  for (let i = 0; i < nsse; i++) {
40398
40418
  if(substruct[i].Sheet) {
40399
40419
  let sheetsItem = {};
@@ -40406,6 +40426,8 @@ class Domain3d {
40406
40426
  sheetsItem.sheet_num = 0;
40407
40427
  sheetsItem.adj_strand2 = 0;
40408
40428
  sheetsItem.sse = i + 1;
40429
+
40430
+ invalidSheethash[sheetsItem.sse] = 1;
40409
40431
  }
40410
40432
 
40411
40433
  sheets.push(sheetsItem);
@@ -40437,7 +40459,7 @@ class Domain3d {
40437
40459
  }
40438
40460
  }
40439
40461
 
40440
- let minStrand = 6;
40462
+ let minStrand = 6; // number of residues in a strand
40441
40463
 
40442
40464
  if (hasSheets) {
40443
40465
  //sheets: array of sheets, each of which has the key: sheet_num (number of strands), adj_strand1, adj_strand2
@@ -40461,7 +40483,8 @@ class Domain3d {
40461
40483
  if (cnt> 0) {
40462
40484
  for (let i = 0; i < sheets.length; i++) {
40463
40485
  let bsrec = sheets[i];
40464
- this.group_num[bsrec.sse - 1] = bsrec.sheet_num;
40486
+ // this.group_num[bsrec.sse - 1] = bsrec.sheet_num;
40487
+ if(bsrec.sheet_num != 0) this.group_num[bsrec.sse - 1] = bsrec.sheet_num;
40465
40488
  }
40466
40489
  }
40467
40490
  }
@@ -40517,11 +40540,25 @@ class Domain3d {
40517
40540
  }
40518
40541
  }
40519
40542
  }
40520
-
40543
+
40521
40544
  list_parts.sort(function(v1, v2) {
40522
40545
  return v1[0] - v2[0];
40523
40546
  });
40524
40547
 
40548
+ // remove sheets less than 3 residues
40549
+ let list_partsTmp = [];
40550
+ for(let i = 0, il = list_parts.length; i < il; ++i) {
40551
+ let list_parts_item = [];
40552
+ for(let j = 0, jl = list_parts[i].length; j < jl; ++j) {
40553
+ let sse = list_parts[i][j];
40554
+ if(!invalidSheethash.hasOwnProperty(sse)) {
40555
+ list_parts_item.push(sse);
40556
+ }
40557
+ }
40558
+ if(list_parts_item.length >= this.min_sse) list_partsTmp.push(list_parts[i]);
40559
+ }
40560
+ list_parts = list_partsTmp;
40561
+
40525
40562
  //for (lplet = list_parts.begin(); lplet != list_parts.end(); lpint++) {
40526
40563
  for (let index = 0, indexl = list_parts.length; index < indexl; ++index) {
40527
40564
  //vector<int> prts = *lpint;