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 +56 -19
- package/icn3d.min.js +2 -2
- package/icn3d.module.js +56 -19
- package/package.json +1 -1
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'] = ['
|
|
11917
|
-
group2tpl['C1'] = ['FAB-LIGHT_5esv_C1-n2', '
|
|
11918
|
-
group2tpl['C2'] = ['CD2_1hnfA_human_C2-n2', '
|
|
11919
|
-
group2tpl['
|
|
11920
|
-
group2tpl['
|
|
11921
|
-
|
|
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;
|
|
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
|
|
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
|
|
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;
|