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.js +39 -26
- package/icn3d.min.js +3 -3
- package/icn3d.module.js +39 -26
- package/package.json +1 -1
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) <
|
|
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(
|
|
67313
|
-
|
|
67314
|
-
if(!
|
|
67315
|
-
|
|
67316
|
-
|
|
67317
|
-
|
|
67318
|
-
|
|
67319
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
67380
|
-
ic.domainid2refpdbname[domainid] = refpdbnameList.slice(0,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
68433
|
-
|
|
68434
|
-
|
|
68435
|
-
|
|
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;
|