icn3d 3.25.15 → 3.25.17
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 +76 -35
- package/icn3d.min.js +2 -2
- package/icn3d.module.js +76 -35
- package/package.json +1 -1
package/icn3d.module.js
CHANGED
|
@@ -33156,7 +33156,8 @@ class Alternate {
|
|
|
33156
33156
|
ic.drawCls.draw();
|
|
33157
33157
|
|
|
33158
33158
|
ic.bShowHighlight = true;
|
|
33159
|
-
ic.opts['rotationcenter'] = 'molecule center';
|
|
33159
|
+
//ic.opts['rotationcenter'] = 'molecule center';
|
|
33160
|
+
ic.opts['rotationcenter'] = 'highlight center';
|
|
33160
33161
|
}
|
|
33161
33162
|
|
|
33162
33163
|
alternateWrapper() { let ic = this.icn3d; ic.icn3dui;
|
|
@@ -36756,6 +36757,7 @@ class AnnoCddSite {
|
|
|
36756
36757
|
|
|
36757
36758
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
36758
36759
|
//let data = (bSeq) ? dataArray[i][0] : dataArray[i];
|
|
36760
|
+
// somehow Node.js returned data in dataArray[i]
|
|
36759
36761
|
let data = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
36760
36762
|
|
|
36761
36763
|
if(!data) continue;
|
|
@@ -43112,6 +43114,8 @@ class ShowSeq {
|
|
|
43112
43114
|
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
43113
43115
|
currRefnum = parseInt(refnumStr);
|
|
43114
43116
|
refnumLabelNoPostfix = currStrand + currRefnum;
|
|
43117
|
+
|
|
43118
|
+
currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
|
|
43115
43119
|
|
|
43116
43120
|
let firstChar = refnumLabel.substr(0,1);
|
|
43117
43121
|
if(!bStart && (firstChar == ' ' || firstChar == 'A' || firstChar == 'B')) { // start of a new IG domain
|
|
@@ -43128,7 +43132,26 @@ class ShowSeq {
|
|
|
43128
43132
|
refnumLabel = undefined;
|
|
43129
43133
|
}
|
|
43130
43134
|
else {
|
|
43131
|
-
|
|
43135
|
+
let bBefore = false, bInRange= false, bAfter = false;
|
|
43136
|
+
// 100, 100A
|
|
43137
|
+
if(parseInt(currResi) == parseInt(strandArray[strandCnt].startResi) && currResi != strandArray[strandCnt].startResi) {
|
|
43138
|
+
bBefore = currResi < strandArray[strandCnt].startResi;
|
|
43139
|
+
}
|
|
43140
|
+
else {
|
|
43141
|
+
bBefore = parseInt(currResi) < parseInt(strandArray[strandCnt].startResi);
|
|
43142
|
+
}
|
|
43143
|
+
|
|
43144
|
+
// 100, 100A
|
|
43145
|
+
if(parseInt(currResi) == parseInt(strandArray[strandCnt].endResi) && currResi != strandArray[strandCnt].endResi) {
|
|
43146
|
+
bAfter = currResi > strandArray[strandCnt].endResi;
|
|
43147
|
+
}
|
|
43148
|
+
else {
|
|
43149
|
+
bAfter = parseInt(currResi) > parseInt(strandArray[strandCnt].endResi);
|
|
43150
|
+
}
|
|
43151
|
+
|
|
43152
|
+
bInRange = (!bBefore && !bAfter) ? true : false;
|
|
43153
|
+
|
|
43154
|
+
if(bBefore) {
|
|
43132
43155
|
ic.residIgLoop[residueid] = 1;
|
|
43133
43156
|
|
|
43134
43157
|
if(bBeforeAstrand) { // make it continuous to the 1st strand
|
|
@@ -43189,7 +43212,7 @@ class ShowSeq {
|
|
|
43189
43212
|
}
|
|
43190
43213
|
}
|
|
43191
43214
|
}
|
|
43192
|
-
else if(
|
|
43215
|
+
else if(bInRange) {
|
|
43193
43216
|
// not in loop any more if you assign ref numbers multiple times
|
|
43194
43217
|
//delete ic.residIgLoop[residueid];
|
|
43195
43218
|
|
|
@@ -43217,7 +43240,7 @@ class ShowSeq {
|
|
|
43217
43240
|
}
|
|
43218
43241
|
}
|
|
43219
43242
|
}
|
|
43220
|
-
else if(
|
|
43243
|
+
else if(bAfter) {
|
|
43221
43244
|
ic.residIgLoop[residueid] = 1;
|
|
43222
43245
|
|
|
43223
43246
|
if(!bAfterGstrand) {
|
|
@@ -47733,8 +47756,10 @@ class AlignParser {
|
|
|
47733
47756
|
let dataArray = await allPromise;
|
|
47734
47757
|
|
|
47735
47758
|
let data2 = data;
|
|
47736
|
-
let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
|
|
47737
|
-
let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
|
|
47759
|
+
// let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
|
|
47760
|
+
// let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
|
|
47761
|
+
let data3 = dataArray[0].value; //v3[0];
|
|
47762
|
+
let data4 = dataArray[1].value; //v4[0];
|
|
47738
47763
|
|
|
47739
47764
|
if(data3.atoms !== undefined && data4.atoms !== undefined) {
|
|
47740
47765
|
// ic.deferredOpm = $.Deferred(function() {
|
|
@@ -47896,7 +47921,8 @@ class AlignParser {
|
|
|
47896
47921
|
|
|
47897
47922
|
let bFound = false;
|
|
47898
47923
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
47899
|
-
let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
47924
|
+
//let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
47925
|
+
let opmdata = dataArray[i].value;
|
|
47900
47926
|
|
|
47901
47927
|
if(!opmdata) continue;
|
|
47902
47928
|
|
|
@@ -48056,7 +48082,8 @@ class ChainalignParser {
|
|
|
48056
48082
|
|
|
48057
48083
|
// modify the previous trans and rotation matrix
|
|
48058
48084
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
48059
|
-
let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48085
|
+
// let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48086
|
+
let align = dataArray[i].value;//[0];
|
|
48060
48087
|
|
|
48061
48088
|
let mmdbid_q = struArray[i];
|
|
48062
48089
|
let index = indexArray[i];
|
|
@@ -48148,7 +48175,8 @@ class ChainalignParser {
|
|
|
48148
48175
|
|
|
48149
48176
|
let bFoundAlignment = false;
|
|
48150
48177
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
48151
|
-
let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48178
|
+
// let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48179
|
+
let align = dataArray[i].value;//[0];
|
|
48152
48180
|
|
|
48153
48181
|
let bEqualMmdbid = false;
|
|
48154
48182
|
let bEqualChain = false;
|
|
@@ -48540,7 +48568,8 @@ class ChainalignParser {
|
|
|
48540
48568
|
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
|
|
48541
48569
|
//var data2 = v2[0];
|
|
48542
48570
|
// index = 0: the mmdb data of target
|
|
48543
|
-
let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
|
|
48571
|
+
// let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
|
|
48572
|
+
let targetData = dataArray[0].value; //[0];
|
|
48544
48573
|
let header = 'HEADER ' + mmdbid_t + '\n';
|
|
48545
48574
|
if(isNaN(mmdbid_t) && mmdbid_t.length > 5) targetData = header + targetData;
|
|
48546
48575
|
|
|
@@ -48558,7 +48587,8 @@ class ChainalignParser {
|
|
|
48558
48587
|
let queryDataArray = [];
|
|
48559
48588
|
|
|
48560
48589
|
for(let index = 1, indexl = chainidArray.length; index < indexl; ++index) {
|
|
48561
|
-
let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48590
|
+
// let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48591
|
+
let queryData = dataArray[index].value;//[0];
|
|
48562
48592
|
|
|
48563
48593
|
let pos = chainidArray[index].indexOf('_');
|
|
48564
48594
|
let mmdbid_q = chainidArray[index].substr(0, pos).toUpperCase();
|
|
@@ -48604,7 +48634,8 @@ class ChainalignParser {
|
|
|
48604
48634
|
ic.qt_start_end[index-1] = undefined;
|
|
48605
48635
|
}
|
|
48606
48636
|
else {
|
|
48607
|
-
let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
|
|
48637
|
+
// let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
|
|
48638
|
+
let align = dataArray[index2 - missedChainCnt].value;//[0];
|
|
48608
48639
|
|
|
48609
48640
|
let bEqualMmdbid = (mmdbid_q == mmdbid_t);
|
|
48610
48641
|
let bEqualChain = (chain_q == chain_t);
|
|
@@ -48822,7 +48853,8 @@ class ChainalignParser {
|
|
|
48822
48853
|
|
|
48823
48854
|
let queryDataArray = [];
|
|
48824
48855
|
for(let index = 0, indexl = structArray.length; index < indexl; ++index) {
|
|
48825
|
-
let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48856
|
+
// let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48857
|
+
let queryData = dataArray[index].value;//[0];
|
|
48826
48858
|
let header = 'HEADER ' + structArray[index] + '\n';
|
|
48827
48859
|
if(isNaN(structArray[index]) && structArray[index].length > 5) queryData = header + queryData;
|
|
48828
48860
|
|
|
@@ -51274,7 +51306,8 @@ class RealignParser {
|
|
|
51274
51306
|
//var data2 = v2[0];
|
|
51275
51307
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
51276
51308
|
// for(let index = 1, indexl = dataArray.length; index < indexl; ++index) {
|
|
51277
|
-
|
|
51309
|
+
// let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
51310
|
+
let data = dataArray[index].value;//[0];
|
|
51278
51311
|
if(!data) continue;
|
|
51279
51312
|
|
|
51280
51313
|
let fromStruct = chainidArray[index + 1].substr(0, chainidArray[index + 1].indexOf('_')); //.toUpperCase();
|
|
@@ -54813,7 +54846,10 @@ class SetSeqAlign {
|
|
|
54813
54846
|
*/
|
|
54814
54847
|
|
|
54815
54848
|
let resid = chainid + '_' + resi;
|
|
54816
|
-
|
|
54849
|
+
let resn = ic.residueId2Name[resid];
|
|
54850
|
+
if(!resn) resn = '?';
|
|
54851
|
+
|
|
54852
|
+
return resn;
|
|
54817
54853
|
}
|
|
54818
54854
|
|
|
54819
54855
|
getResiAferAlign(chainid, bRealign, pos) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -63088,14 +63124,15 @@ class Dssp {
|
|
|
63088
63124
|
}
|
|
63089
63125
|
}
|
|
63090
63126
|
|
|
63091
|
-
async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d
|
|
63127
|
+
async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d; ic.icn3dui;
|
|
63092
63128
|
//var dataArray =(struArray.length == 1) ? [data] : data;
|
|
63093
63129
|
|
|
63094
63130
|
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
|
|
63095
63131
|
//var data2 = v2[0];
|
|
63096
63132
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
63097
63133
|
//let ssHash = dataArray[index][0];
|
|
63098
|
-
let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
|
|
63134
|
+
//let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
|
|
63135
|
+
let ssHash = dataArray[index].value;
|
|
63099
63136
|
|
|
63100
63137
|
if(ssHash !== undefined && JSON.stringify(ssHash).indexOf('Oops there was a problem') === -1) {
|
|
63101
63138
|
for(let chainNum in ic.chainsSeq) {
|
|
@@ -63377,16 +63414,17 @@ class Dssp {
|
|
|
63377
63414
|
pdbAjaxArray.push(pdbAjax);
|
|
63378
63415
|
}
|
|
63379
63416
|
|
|
63380
|
-
|
|
63417
|
+
try {
|
|
63381
63418
|
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
63382
63419
|
ic.pdbDataArray = await allPromise;
|
|
63383
63420
|
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
63384
|
-
|
|
63385
|
-
|
|
63386
|
-
|
|
63387
|
-
|
|
63388
|
-
|
|
63389
|
-
|
|
63421
|
+
}
|
|
63422
|
+
catch(err) {
|
|
63423
|
+
if(!me.bNode) alert("Error in retrieveing reference PDB data...");
|
|
63424
|
+
//alert("Error in retrieveing reference PDB data...");
|
|
63425
|
+
return;
|
|
63426
|
+
}
|
|
63427
|
+
|
|
63390
63428
|
// }
|
|
63391
63429
|
// }
|
|
63392
63430
|
}
|
|
@@ -63463,12 +63501,13 @@ class Dssp {
|
|
|
63463
63501
|
for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
|
|
63464
63502
|
let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
|
|
63465
63503
|
// ig strand for any subset will have the same k, use the number of residue to separate them
|
|
63466
|
-
let domainid = chainid + '-' + k + '_' + domainAtomsArray[k].length;
|
|
63504
|
+
let domainid = chainid + '-' + k + '_' + Object.keys(domainAtomsArray[k]).length;
|
|
63467
63505
|
ic.domainid2pdb[domainid] = pdb_target;
|
|
63468
63506
|
|
|
63469
63507
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
63470
63508
|
let struct2 = ic.defaultPdbId + index;
|
|
63471
|
-
let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
63509
|
+
//let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
63510
|
+
let pdb_query = dataArray[index].value; //[0];
|
|
63472
63511
|
let header = 'HEADER ' + struct2 + '\n';
|
|
63473
63512
|
pdb_query = header + pdb_query;
|
|
63474
63513
|
|
|
@@ -63482,7 +63521,7 @@ class Dssp {
|
|
|
63482
63521
|
}
|
|
63483
63522
|
}
|
|
63484
63523
|
|
|
63485
|
-
|
|
63524
|
+
try {
|
|
63486
63525
|
let dataArray2 = [];
|
|
63487
63526
|
let allPromise = Promise.allSettled(ajaxArray);
|
|
63488
63527
|
dataArray2 = await allPromise;
|
|
@@ -63491,12 +63530,12 @@ class Dssp {
|
|
|
63491
63530
|
await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
|
|
63492
63531
|
|
|
63493
63532
|
/// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
|
|
63494
|
-
|
|
63495
|
-
|
|
63496
|
-
|
|
63497
|
-
|
|
63498
|
-
|
|
63499
|
-
|
|
63533
|
+
}
|
|
63534
|
+
catch(err) {
|
|
63535
|
+
if(!me.bNode) console.log("Error in aligning with TM-align...");
|
|
63536
|
+
//console.log("Error in aligning with TM-align...");
|
|
63537
|
+
return;
|
|
63538
|
+
}
|
|
63500
63539
|
}
|
|
63501
63540
|
|
|
63502
63541
|
async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -63520,7 +63559,8 @@ class Dssp {
|
|
|
63520
63559
|
let minResidues = 20;
|
|
63521
63560
|
|
|
63522
63561
|
for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
|
|
63523
|
-
let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
|
|
63562
|
+
//let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
|
|
63563
|
+
let queryData = dataArray[i].value; //[0];
|
|
63524
63564
|
|
|
63525
63565
|
if(!queryData) {
|
|
63526
63566
|
if(!me.bNode) console.log("The alignment data for " + domainidpairArray[i] + " is unavailable...");
|
|
@@ -63612,7 +63652,8 @@ class Dssp {
|
|
|
63612
63652
|
let pdb_target = ic.domainid2pdb[domainid];
|
|
63613
63653
|
for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
|
|
63614
63654
|
let struct2 = ic.defaultPdbId + index;
|
|
63615
|
-
let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
|
|
63655
|
+
//let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
|
|
63656
|
+
let pdb_query = ic.pdbDataArray[index].value; //[0];
|
|
63616
63657
|
let header = 'HEADER ' + struct2 + '\n';
|
|
63617
63658
|
pdb_query = header + pdb_query;
|
|
63618
63659
|
|