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.js
CHANGED
|
@@ -32255,7 +32255,8 @@ class Alternate {
|
|
|
32255
32255
|
ic.drawCls.draw();
|
|
32256
32256
|
|
|
32257
32257
|
ic.bShowHighlight = true;
|
|
32258
|
-
ic.opts['rotationcenter'] = 'molecule center';
|
|
32258
|
+
//ic.opts['rotationcenter'] = 'molecule center';
|
|
32259
|
+
ic.opts['rotationcenter'] = 'highlight center';
|
|
32259
32260
|
}
|
|
32260
32261
|
|
|
32261
32262
|
alternateWrapper() { let ic = this.icn3d; ic.icn3dui;
|
|
@@ -35855,6 +35856,7 @@ class AnnoCddSite {
|
|
|
35855
35856
|
|
|
35856
35857
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
35857
35858
|
//let data = (bSeq) ? dataArray[i][0] : dataArray[i];
|
|
35859
|
+
// somehow Node.js returned data in dataArray[i]
|
|
35858
35860
|
let data = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
35859
35861
|
|
|
35860
35862
|
if(!data) continue;
|
|
@@ -42211,6 +42213,8 @@ class ShowSeq {
|
|
|
42211
42213
|
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
42212
42214
|
currRefnum = parseInt(refnumStr);
|
|
42213
42215
|
refnumLabelNoPostfix = currStrand + currRefnum;
|
|
42216
|
+
|
|
42217
|
+
currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
|
|
42214
42218
|
|
|
42215
42219
|
let firstChar = refnumLabel.substr(0,1);
|
|
42216
42220
|
if(!bStart && (firstChar == ' ' || firstChar == 'A' || firstChar == 'B')) { // start of a new IG domain
|
|
@@ -42227,7 +42231,26 @@ class ShowSeq {
|
|
|
42227
42231
|
refnumLabel = undefined;
|
|
42228
42232
|
}
|
|
42229
42233
|
else {
|
|
42230
|
-
|
|
42234
|
+
let bBefore = false, bInRange= false, bAfter = false;
|
|
42235
|
+
// 100, 100A
|
|
42236
|
+
if(parseInt(currResi) == parseInt(strandArray[strandCnt].startResi) && currResi != strandArray[strandCnt].startResi) {
|
|
42237
|
+
bBefore = currResi < strandArray[strandCnt].startResi;
|
|
42238
|
+
}
|
|
42239
|
+
else {
|
|
42240
|
+
bBefore = parseInt(currResi) < parseInt(strandArray[strandCnt].startResi);
|
|
42241
|
+
}
|
|
42242
|
+
|
|
42243
|
+
// 100, 100A
|
|
42244
|
+
if(parseInt(currResi) == parseInt(strandArray[strandCnt].endResi) && currResi != strandArray[strandCnt].endResi) {
|
|
42245
|
+
bAfter = currResi > strandArray[strandCnt].endResi;
|
|
42246
|
+
}
|
|
42247
|
+
else {
|
|
42248
|
+
bAfter = parseInt(currResi) > parseInt(strandArray[strandCnt].endResi);
|
|
42249
|
+
}
|
|
42250
|
+
|
|
42251
|
+
bInRange = (!bBefore && !bAfter) ? true : false;
|
|
42252
|
+
|
|
42253
|
+
if(bBefore) {
|
|
42231
42254
|
ic.residIgLoop[residueid] = 1;
|
|
42232
42255
|
|
|
42233
42256
|
if(bBeforeAstrand) { // make it continuous to the 1st strand
|
|
@@ -42288,7 +42311,7 @@ class ShowSeq {
|
|
|
42288
42311
|
}
|
|
42289
42312
|
}
|
|
42290
42313
|
}
|
|
42291
|
-
else if(
|
|
42314
|
+
else if(bInRange) {
|
|
42292
42315
|
// not in loop any more if you assign ref numbers multiple times
|
|
42293
42316
|
//delete ic.residIgLoop[residueid];
|
|
42294
42317
|
|
|
@@ -42316,7 +42339,7 @@ class ShowSeq {
|
|
|
42316
42339
|
}
|
|
42317
42340
|
}
|
|
42318
42341
|
}
|
|
42319
|
-
else if(
|
|
42342
|
+
else if(bAfter) {
|
|
42320
42343
|
ic.residIgLoop[residueid] = 1;
|
|
42321
42344
|
|
|
42322
42345
|
if(!bAfterGstrand) {
|
|
@@ -46832,8 +46855,10 @@ class AlignParser {
|
|
|
46832
46855
|
let dataArray = await allPromise;
|
|
46833
46856
|
|
|
46834
46857
|
let data2 = data;
|
|
46835
|
-
let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
|
|
46836
|
-
let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
|
|
46858
|
+
// let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
|
|
46859
|
+
// let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
|
|
46860
|
+
let data3 = dataArray[0].value; //v3[0];
|
|
46861
|
+
let data4 = dataArray[1].value; //v4[0];
|
|
46837
46862
|
|
|
46838
46863
|
if(data3.atoms !== undefined && data4.atoms !== undefined) {
|
|
46839
46864
|
// ic.deferredOpm = $.Deferred(function() {
|
|
@@ -46995,7 +47020,8 @@ class AlignParser {
|
|
|
46995
47020
|
|
|
46996
47021
|
let bFound = false;
|
|
46997
47022
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
46998
|
-
let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
47023
|
+
//let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
47024
|
+
let opmdata = dataArray[i].value;
|
|
46999
47025
|
|
|
47000
47026
|
if(!opmdata) continue;
|
|
47001
47027
|
|
|
@@ -47155,7 +47181,8 @@ class ChainalignParser {
|
|
|
47155
47181
|
|
|
47156
47182
|
// modify the previous trans and rotation matrix
|
|
47157
47183
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
47158
|
-
let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
47184
|
+
// let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
47185
|
+
let align = dataArray[i].value;//[0];
|
|
47159
47186
|
|
|
47160
47187
|
let mmdbid_q = struArray[i];
|
|
47161
47188
|
let index = indexArray[i];
|
|
@@ -47247,7 +47274,8 @@ class ChainalignParser {
|
|
|
47247
47274
|
|
|
47248
47275
|
let bFoundAlignment = false;
|
|
47249
47276
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
47250
|
-
let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
47277
|
+
// let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
47278
|
+
let align = dataArray[i].value;//[0];
|
|
47251
47279
|
|
|
47252
47280
|
let bEqualMmdbid = false;
|
|
47253
47281
|
let bEqualChain = false;
|
|
@@ -47639,7 +47667,8 @@ class ChainalignParser {
|
|
|
47639
47667
|
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
|
|
47640
47668
|
//var data2 = v2[0];
|
|
47641
47669
|
// index = 0: the mmdb data of target
|
|
47642
|
-
let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
|
|
47670
|
+
// let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
|
|
47671
|
+
let targetData = dataArray[0].value; //[0];
|
|
47643
47672
|
let header = 'HEADER ' + mmdbid_t + '\n';
|
|
47644
47673
|
if(isNaN(mmdbid_t) && mmdbid_t.length > 5) targetData = header + targetData;
|
|
47645
47674
|
|
|
@@ -47657,7 +47686,8 @@ class ChainalignParser {
|
|
|
47657
47686
|
let queryDataArray = [];
|
|
47658
47687
|
|
|
47659
47688
|
for(let index = 1, indexl = chainidArray.length; index < indexl; ++index) {
|
|
47660
|
-
let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
47689
|
+
// let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
47690
|
+
let queryData = dataArray[index].value;//[0];
|
|
47661
47691
|
|
|
47662
47692
|
let pos = chainidArray[index].indexOf('_');
|
|
47663
47693
|
let mmdbid_q = chainidArray[index].substr(0, pos).toUpperCase();
|
|
@@ -47703,7 +47733,8 @@ class ChainalignParser {
|
|
|
47703
47733
|
ic.qt_start_end[index-1] = undefined;
|
|
47704
47734
|
}
|
|
47705
47735
|
else {
|
|
47706
|
-
let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
|
|
47736
|
+
// let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
|
|
47737
|
+
let align = dataArray[index2 - missedChainCnt].value;//[0];
|
|
47707
47738
|
|
|
47708
47739
|
let bEqualMmdbid = (mmdbid_q == mmdbid_t);
|
|
47709
47740
|
let bEqualChain = (chain_q == chain_t);
|
|
@@ -47921,7 +47952,8 @@ class ChainalignParser {
|
|
|
47921
47952
|
|
|
47922
47953
|
let queryDataArray = [];
|
|
47923
47954
|
for(let index = 0, indexl = structArray.length; index < indexl; ++index) {
|
|
47924
|
-
let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
47955
|
+
// let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
47956
|
+
let queryData = dataArray[index].value;//[0];
|
|
47925
47957
|
let header = 'HEADER ' + structArray[index] + '\n';
|
|
47926
47958
|
if(isNaN(structArray[index]) && structArray[index].length > 5) queryData = header + queryData;
|
|
47927
47959
|
|
|
@@ -50373,7 +50405,8 @@ class RealignParser {
|
|
|
50373
50405
|
//var data2 = v2[0];
|
|
50374
50406
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
50375
50407
|
// for(let index = 1, indexl = dataArray.length; index < indexl; ++index) {
|
|
50376
|
-
|
|
50408
|
+
// let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
50409
|
+
let data = dataArray[index].value;//[0];
|
|
50377
50410
|
if(!data) continue;
|
|
50378
50411
|
|
|
50379
50412
|
let fromStruct = chainidArray[index + 1].substr(0, chainidArray[index + 1].indexOf('_')); //.toUpperCase();
|
|
@@ -53912,7 +53945,10 @@ class SetSeqAlign {
|
|
|
53912
53945
|
*/
|
|
53913
53946
|
|
|
53914
53947
|
let resid = chainid + '_' + resi;
|
|
53915
|
-
|
|
53948
|
+
let resn = ic.residueId2Name[resid];
|
|
53949
|
+
if(!resn) resn = '?';
|
|
53950
|
+
|
|
53951
|
+
return resn;
|
|
53916
53952
|
}
|
|
53917
53953
|
|
|
53918
53954
|
getResiAferAlign(chainid, bRealign, pos) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -62187,14 +62223,15 @@ class Dssp {
|
|
|
62187
62223
|
}
|
|
62188
62224
|
}
|
|
62189
62225
|
|
|
62190
|
-
async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d
|
|
62226
|
+
async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d; ic.icn3dui;
|
|
62191
62227
|
//var dataArray =(struArray.length == 1) ? [data] : data;
|
|
62192
62228
|
|
|
62193
62229
|
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
|
|
62194
62230
|
//var data2 = v2[0];
|
|
62195
62231
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
62196
62232
|
//let ssHash = dataArray[index][0];
|
|
62197
|
-
let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
|
|
62233
|
+
//let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
|
|
62234
|
+
let ssHash = dataArray[index].value;
|
|
62198
62235
|
|
|
62199
62236
|
if(ssHash !== undefined && JSON.stringify(ssHash).indexOf('Oops there was a problem') === -1) {
|
|
62200
62237
|
for(let chainNum in ic.chainsSeq) {
|
|
@@ -62476,16 +62513,17 @@ class Dssp {
|
|
|
62476
62513
|
pdbAjaxArray.push(pdbAjax);
|
|
62477
62514
|
}
|
|
62478
62515
|
|
|
62479
|
-
|
|
62516
|
+
try {
|
|
62480
62517
|
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
62481
62518
|
ic.pdbDataArray = await allPromise;
|
|
62482
62519
|
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62483
|
-
|
|
62484
|
-
|
|
62485
|
-
|
|
62486
|
-
|
|
62487
|
-
|
|
62488
|
-
|
|
62520
|
+
}
|
|
62521
|
+
catch(err) {
|
|
62522
|
+
if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62523
|
+
//var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62524
|
+
return;
|
|
62525
|
+
}
|
|
62526
|
+
|
|
62489
62527
|
// }
|
|
62490
62528
|
// }
|
|
62491
62529
|
}
|
|
@@ -62562,12 +62600,13 @@ class Dssp {
|
|
|
62562
62600
|
for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
|
|
62563
62601
|
let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
|
|
62564
62602
|
// ig strand for any subset will have the same k, use the number of residue to separate them
|
|
62565
|
-
let domainid = chainid + '-' + k + '_' + domainAtomsArray[k].length;
|
|
62603
|
+
let domainid = chainid + '-' + k + '_' + Object.keys(domainAtomsArray[k]).length;
|
|
62566
62604
|
ic.domainid2pdb[domainid] = pdb_target;
|
|
62567
62605
|
|
|
62568
62606
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
62569
62607
|
let struct2 = ic.defaultPdbId + index;
|
|
62570
|
-
let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
62608
|
+
//let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
62609
|
+
let pdb_query = dataArray[index].value; //[0];
|
|
62571
62610
|
let header = 'HEADER ' + struct2 + '\n';
|
|
62572
62611
|
pdb_query = header + pdb_query;
|
|
62573
62612
|
|
|
@@ -62581,7 +62620,7 @@ class Dssp {
|
|
|
62581
62620
|
}
|
|
62582
62621
|
}
|
|
62583
62622
|
|
|
62584
|
-
|
|
62623
|
+
try {
|
|
62585
62624
|
let dataArray2 = [];
|
|
62586
62625
|
let allPromise = Promise.allSettled(ajaxArray);
|
|
62587
62626
|
dataArray2 = await allPromise;
|
|
@@ -62590,12 +62629,12 @@ class Dssp {
|
|
|
62590
62629
|
await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
|
|
62591
62630
|
|
|
62592
62631
|
/// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
|
|
62593
|
-
|
|
62594
|
-
|
|
62595
|
-
|
|
62596
|
-
|
|
62597
|
-
|
|
62598
|
-
|
|
62632
|
+
}
|
|
62633
|
+
catch(err) {
|
|
62634
|
+
if(!me.bNode) console.log("Error in aligning with TM-align...");
|
|
62635
|
+
//console.log("Error in aligning with TM-align...");
|
|
62636
|
+
return;
|
|
62637
|
+
}
|
|
62599
62638
|
}
|
|
62600
62639
|
|
|
62601
62640
|
async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -62619,7 +62658,8 @@ class Dssp {
|
|
|
62619
62658
|
let minResidues = 20;
|
|
62620
62659
|
|
|
62621
62660
|
for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
|
|
62622
|
-
let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
|
|
62661
|
+
//let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
|
|
62662
|
+
let queryData = dataArray[i].value; //[0];
|
|
62623
62663
|
|
|
62624
62664
|
if(!queryData) {
|
|
62625
62665
|
if(!me.bNode) console.log("The alignment data for " + domainidpairArray[i] + " is unavailable...");
|
|
@@ -62711,7 +62751,8 @@ class Dssp {
|
|
|
62711
62751
|
let pdb_target = ic.domainid2pdb[domainid];
|
|
62712
62752
|
for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
|
|
62713
62753
|
let struct2 = ic.defaultPdbId + index;
|
|
62714
|
-
let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
|
|
62754
|
+
//let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
|
|
62755
|
+
let pdb_query = ic.pdbDataArray[index].value; //[0];
|
|
62715
62756
|
let header = 'HEADER ' + struct2 + '\n';
|
|
62716
62757
|
pdb_query = header + pdb_query;
|
|
62717
62758
|
|