icn3d 3.30.5 → 3.30.7
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 +55 -32
- package/icn3d.min.js +3 -3
- package/icn3d.module.js +55 -32
- package/package.json +1 -1
package/icn3d.js
CHANGED
|
@@ -12017,7 +12017,7 @@ class SetDialog {
|
|
|
12017
12017
|
tpl2strandsig['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'] = "A--- A-- A- A B C C' C'' D E F G";
|
|
12018
12018
|
tpl2strandsig['FAB-HEAVY_5esv_C1-n2'] = "A B C D E F G";
|
|
12019
12019
|
tpl2strandsig['FAB-HEAVY_5esv_V-n1'] = "A B C C' C'' D E F G";
|
|
12020
|
-
tpl2strandsig['FAB-LIGHT_5esv_C1-n2'] = "A B C C' E F G";
|
|
12020
|
+
tpl2strandsig['FAB-LIGHT_5esv_C1-n2'] = "A B C C' D E F G";
|
|
12021
12021
|
tpl2strandsig['FAB-LIGHT_5esv_V-n1'] = "A A' B C C' C'' D E F G";
|
|
12022
12022
|
tpl2strandsig['GHR_1axiB_human_C1-n1'] = "A B C C' D E F G";
|
|
12023
12023
|
tpl2strandsig['ICOS_6x4gA_human_V'] = "A B C C' C'' D E F G";
|
|
@@ -37993,7 +37993,7 @@ class AnnoIg {
|
|
|
37993
37993
|
// titleArray.push(igType + confidance + ' (TM:' + parseFloat(tmscore).toFixed(2) + ')');
|
|
37994
37994
|
// fullTitleArray.push(igType + confidance + ' (TM:' + parseFloat(tmscore).toFixed(2) + '), template: ' + info.refpdbname + ', Seq. identity: ' + parseFloat(info.seqid).toFixed(2) + ', aligned residues: ' + info.nresAlign);
|
|
37995
37995
|
|
|
37996
|
-
let igType = (parseFloat(tmscore) <
|
|
37996
|
+
let igType = (parseFloat(tmscore) < ic.refnumCls.TMThreshold ) ? 'Ig' : ic.ref2igtype[info.refpdbname];
|
|
37997
37997
|
titleArray.push(igType + ' (TM:' + parseFloat(tmscore).toFixed(2) + ')');
|
|
37998
37998
|
fullTitleArray.push(igType + ' (TM:' + parseFloat(tmscore).toFixed(2) + '), template: ' + info.refpdbname + ', Seq. identity: ' + parseFloat(info.seqid).toFixed(2) + ', aligned residues: ' + info.nresAlign);
|
|
37999
37999
|
|
|
@@ -65828,6 +65828,8 @@ class Dssp {
|
|
|
65828
65828
|
class Refnum {
|
|
65829
65829
|
constructor(icn3d) {
|
|
65830
65830
|
this.icn3d = icn3d;
|
|
65831
|
+
this.TMThreshold = 0.85;
|
|
65832
|
+
this.topClusters = 5;
|
|
65831
65833
|
}
|
|
65832
65834
|
|
|
65833
65835
|
async hideIgRefNum() { let ic = this.icn3d; ic.icn3dui;
|
|
@@ -66385,21 +66387,30 @@ class Dssp {
|
|
|
66385
66387
|
|
|
66386
66388
|
if(q_start > 2540 && q_start < 2560) {
|
|
66387
66389
|
bBstrand = true;
|
|
66388
|
-
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
|
|
66389
|
-
if(atom.ss == 'helix') bBSheet = false;
|
|
66390
66390
|
}
|
|
66391
66391
|
else if(q_start > 3540 && q_start < 3560) {
|
|
66392
66392
|
bCstrand = true;
|
|
66393
|
-
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
|
|
66394
|
-
if(atom.ss == 'helix') bCSheet = false;
|
|
66395
66393
|
}
|
|
66396
66394
|
else if(q_start > 7540 && q_start < 7560) {
|
|
66397
66395
|
bEstrand = true;
|
|
66398
|
-
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
|
|
66399
|
-
if(atom.ss == 'helix') bESheet = false;
|
|
66400
66396
|
}
|
|
66401
66397
|
else if(q_start > 8540 && q_start < 8560) {
|
|
66402
66398
|
bFstrand = true;
|
|
66399
|
+
}
|
|
66400
|
+
|
|
66401
|
+
if(q_start == 2550) {
|
|
66402
|
+
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
|
|
66403
|
+
if(atom.ss == 'helix') bBSheet = false;
|
|
66404
|
+
}
|
|
66405
|
+
else if(q_start == 3550) {
|
|
66406
|
+
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
|
|
66407
|
+
if(atom.ss == 'helix') bCSheet = false;
|
|
66408
|
+
}
|
|
66409
|
+
else if(q_start == 7550) {
|
|
66410
|
+
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
|
|
66411
|
+
if(atom.ss == 'helix') bESheet = false;
|
|
66412
|
+
}
|
|
66413
|
+
else if(q_start == 8550) {
|
|
66403
66414
|
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
|
|
66404
66415
|
if(atom.ss == 'helix') bFSheet = false;
|
|
66405
66416
|
}
|
|
@@ -66408,17 +66419,20 @@ class Dssp {
|
|
|
66408
66419
|
if(bBstrand && bCstrand && bEstrand && bFstrand) break;
|
|
66409
66420
|
}
|
|
66410
66421
|
|
|
66411
|
-
if(
|
|
66412
|
-
|
|
66413
|
-
if(!
|
|
66414
|
-
|
|
66415
|
-
|
|
66416
|
-
|
|
66417
|
-
|
|
66418
|
-
|
|
66422
|
+
// if(refpdbname != 'CD19_6al5A_human-n1') { // relax for CD19
|
|
66423
|
+
if(!(bBstrand && bCstrand && bEstrand && bFstrand) || !(bBSheet && bCSheet && bESheet && bFSheet)) {
|
|
66424
|
+
// if(!(bBstrand && bCstrand && bEstrand && bFstrand)) {
|
|
66425
|
+
if(!me.bNode && !(bBstrand && bCstrand && bEstrand && bFstrand)) console.log("Some of the Ig strands B, C, E, F are missing in the domain " + domainid + "...");
|
|
66426
|
+
if(!me.bNode && !(bBSheet && bCSheet && bESheet && bFSheet)) console.log("Some of the Ig strands B, C, E, F are not beta sheets...");
|
|
66427
|
+
// 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 + "...");
|
|
66428
|
+
if(ic.domainid2refpdbname[domainid][0] == refpdbname) {
|
|
66429
|
+
delete ic.domainid2refpdbname[domainid];
|
|
66430
|
+
delete ic.domainid2score[domainid];
|
|
66431
|
+
}
|
|
66432
|
+
// continue;
|
|
66419
66433
|
}
|
|
66420
|
-
|
|
66421
|
-
|
|
66434
|
+
// }
|
|
66435
|
+
|
|
66422
66436
|
}
|
|
66423
66437
|
|
|
66424
66438
|
if(!bRound1) {
|
|
@@ -66447,7 +66461,9 @@ class Dssp {
|
|
|
66447
66461
|
ic.domainid2score[domainid] = queryData[0].score + '_' + queryData[0].frac_identical + '_' + queryData[0].num_res ;
|
|
66448
66462
|
|
|
66449
66463
|
if(bRound1) {
|
|
66450
|
-
ic.domainid2refpdbname[domainid] = score > 0.75 ? [refpdbname] : ['all_templates'];
|
|
66464
|
+
// ic.domainid2refpdbname[domainid] = score > 0.75 ? [refpdbname] : ['all_templates'];
|
|
66465
|
+
ic.domainid2refpdbname[domainid] = score >= this.TMThreshold ? [refpdbname] : ['all_templates'];
|
|
66466
|
+
// if(me.bNode) ic.domainid2refpdbname[domainid] = ['all_templates'];
|
|
66451
66467
|
}
|
|
66452
66468
|
else {
|
|
66453
66469
|
ic.domainid2refpdbname[domainid] = [refpdbname];
|
|
@@ -66466,7 +66482,7 @@ class Dssp {
|
|
|
66466
66482
|
}
|
|
66467
66483
|
}
|
|
66468
66484
|
|
|
66469
|
-
// combine the top
|
|
66485
|
+
// combine the top clusters for the 2nd round alignment
|
|
66470
66486
|
if(bRound1) {
|
|
66471
66487
|
for(let domainid in domainid2refpdbnamelist) {
|
|
66472
66488
|
if(!me.bNode && ic.domainid2refpdbname[domainid][0] == 'all_templates') {
|
|
@@ -66475,8 +66491,8 @@ class Dssp {
|
|
|
66475
66491
|
refpdbnameList.sort(function(a, b) {
|
|
66476
66492
|
return refpdbname2score[b] - refpdbname2score[a]
|
|
66477
66493
|
});
|
|
66478
|
-
// top
|
|
66479
|
-
ic.domainid2refpdbname[domainid] = refpdbnameList.slice(0,
|
|
66494
|
+
// top templates
|
|
66495
|
+
ic.domainid2refpdbname[domainid] = refpdbnameList.slice(0, this.topClusters);
|
|
66480
66496
|
}
|
|
66481
66497
|
}
|
|
66482
66498
|
}
|
|
@@ -66713,8 +66729,8 @@ class Dssp {
|
|
|
66713
66729
|
let seg = segArray[i];
|
|
66714
66730
|
if(!seg) continue;
|
|
66715
66731
|
|
|
66716
|
-
|
|
66717
|
-
parseInt(seg.q_start);
|
|
66732
|
+
seg.q_start;
|
|
66733
|
+
let qStartInt = parseInt(seg.q_start);
|
|
66718
66734
|
if(isNaN(seg.q_start)) seg.q_start.substr(seg.q_start.length - 1, 1);
|
|
66719
66735
|
|
|
66720
66736
|
// one item in "seq"
|
|
@@ -66727,7 +66743,8 @@ class Dssp {
|
|
|
66727
66743
|
let resid = chainid + '_' + seg.t_start;
|
|
66728
66744
|
//let refnum = qStartInt.toString() + postfix;
|
|
66729
66745
|
//let refnum = qStart + postfix;
|
|
66730
|
-
let refnum = qStart;
|
|
66746
|
+
//let refnum = qStart;
|
|
66747
|
+
let refnum = qStartInt;
|
|
66731
66748
|
|
|
66732
66749
|
let refnumLabel = this.getLabelFromRefnum(refnum);
|
|
66733
66750
|
currStrand = (refnumLabel) ? refnumLabel.replace(new RegExp(refnum,'g'), '') : undefined;
|
|
@@ -67142,7 +67159,7 @@ class Dssp {
|
|
|
67142
67159
|
if(!ic.chainid2refpdbname[chnid]) return false;
|
|
67143
67160
|
|
|
67144
67161
|
// auto-generate ref numbers for loops
|
|
67145
|
-
let currStrand = '', prevStrand = '';
|
|
67162
|
+
let currStrand = '', prevStrand = '', prevValidStrand = '';
|
|
67146
67163
|
let refnumLabel, refnumStr_ori, refnumStr, postfix, strandPostfix, refnum, refnum3c, refnum2c;
|
|
67147
67164
|
let bExtendedStrand = false, bSecThird9 = false;
|
|
67148
67165
|
|
|
@@ -67206,7 +67223,8 @@ class Dssp {
|
|
|
67206
67223
|
if(!bSecThird9 || (bExtendedStrand && !bSecThird9)) {
|
|
67207
67224
|
let lastTwo = parseInt(refnum.toString().substr(refnum.toString().length - 2, 2));
|
|
67208
67225
|
|
|
67209
|
-
|
|
67226
|
+
// reset currCnt
|
|
67227
|
+
if(currStrand != prevStrand && currStrand != prevValidStrand) { // sometimes the same resid appear several times, e.g, 7M7B_H_135
|
|
67210
67228
|
bFoundAnchor = false;
|
|
67211
67229
|
|
|
67212
67230
|
if(strandHash[currStrand + postfix]) {
|
|
@@ -67308,6 +67326,8 @@ class Dssp {
|
|
|
67308
67326
|
}
|
|
67309
67327
|
}
|
|
67310
67328
|
}
|
|
67329
|
+
|
|
67330
|
+
prevValidStrand = currStrand;
|
|
67311
67331
|
}
|
|
67312
67332
|
}
|
|
67313
67333
|
|
|
@@ -67395,6 +67415,7 @@ class Dssp {
|
|
|
67395
67415
|
for(let il = strandArray.length, i = il - 1; i >= 0; --i) {
|
|
67396
67416
|
// let strandTmp = strandArray[i].strand.substr(0, 1);
|
|
67397
67417
|
let strandTmp = strandArray[i].strand;
|
|
67418
|
+
|
|
67398
67419
|
if(strandTmp != 'G' && strandArray[i].endRefnum - strandArray[i].startRefnum + 1 < 3) { // remove the strand
|
|
67399
67420
|
if(i != il - 1) { // modify
|
|
67400
67421
|
strandArray[i + 1].loopResCnt += strandArray[i].loopResCnt + parseInt(strandArray[i].endResi) - parseInt(strandArray[i].startResi) + 1;
|
|
@@ -67411,7 +67432,7 @@ class Dssp {
|
|
|
67411
67432
|
let domainid = ic.resid2domainid[resid];
|
|
67412
67433
|
removeDomainidHash[domainid] = 1;
|
|
67413
67434
|
continue;
|
|
67414
|
-
}
|
|
67435
|
+
}
|
|
67415
67436
|
}
|
|
67416
67437
|
}
|
|
67417
67438
|
|
|
@@ -67528,10 +67549,12 @@ class Dssp {
|
|
|
67528
67549
|
let halfLen = parseInt(len / 2.0 + 0.5);
|
|
67529
67550
|
|
|
67530
67551
|
if(loopCnt <= halfLen) {
|
|
67531
|
-
|
|
67532
|
-
|
|
67533
|
-
|
|
67534
|
-
|
|
67552
|
+
if(strandArray[prevStrandCnt]) {
|
|
67553
|
+
currRefnum = strandArray[prevStrandCnt].endRefnum + loopCnt;
|
|
67554
|
+
refnumLabelNoPostfix = strandArray[prevStrandCnt].strand + currRefnum;
|
|
67555
|
+
refnumLabel = refnumLabelNoPostfix + strandArray[prevStrandCnt].strandPostfix;
|
|
67556
|
+
domainid = strandArray[prevStrandCnt].domainid;
|
|
67557
|
+
}
|
|
67535
67558
|
}
|
|
67536
67559
|
else {
|
|
67537
67560
|
currRefnum = strandArray[strandCnt].startRefnum - len + loopCnt - 1;
|