icn3d 3.25.14 → 3.25.16
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 +80 -50
- package/icn3d.min.js +2 -2
- package/icn3d.module.js +80 -50
- package/package.json +1 -1
package/icn3d.module.js
CHANGED
|
@@ -36756,6 +36756,7 @@ class AnnoCddSite {
|
|
|
36756
36756
|
|
|
36757
36757
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
36758
36758
|
//let data = (bSeq) ? dataArray[i][0] : dataArray[i];
|
|
36759
|
+
// somehow Node.js returned data in dataArray[i]
|
|
36759
36760
|
let data = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
36760
36761
|
|
|
36761
36762
|
if(!data) continue;
|
|
@@ -47733,8 +47734,10 @@ class AlignParser {
|
|
|
47733
47734
|
let dataArray = await allPromise;
|
|
47734
47735
|
|
|
47735
47736
|
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];
|
|
47737
|
+
// let data3 = (me.bNode) ? dataArray[0] : dataArray[0].value; //v3[0];
|
|
47738
|
+
// let data4 = (me.bNode) ? dataArray[1] : dataArray[1].value; //v4[0];
|
|
47739
|
+
let data3 = dataArray[0].value; //v3[0];
|
|
47740
|
+
let data4 = dataArray[1].value; //v4[0];
|
|
47738
47741
|
|
|
47739
47742
|
if(data3.atoms !== undefined && data4.atoms !== undefined) {
|
|
47740
47743
|
// ic.deferredOpm = $.Deferred(function() {
|
|
@@ -47896,7 +47899,8 @@ class AlignParser {
|
|
|
47896
47899
|
|
|
47897
47900
|
let bFound = false;
|
|
47898
47901
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
47899
|
-
let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
47902
|
+
//let opmdata = (me.bNode) ? dataArray[i] : dataArray[i].value;
|
|
47903
|
+
let opmdata = dataArray[i].value;
|
|
47900
47904
|
|
|
47901
47905
|
if(!opmdata) continue;
|
|
47902
47906
|
|
|
@@ -48056,7 +48060,8 @@ class ChainalignParser {
|
|
|
48056
48060
|
|
|
48057
48061
|
// modify the previous trans and rotation matrix
|
|
48058
48062
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
48059
|
-
let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48063
|
+
// let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48064
|
+
let align = dataArray[i].value;//[0];
|
|
48060
48065
|
|
|
48061
48066
|
let mmdbid_q = struArray[i];
|
|
48062
48067
|
let index = indexArray[i];
|
|
@@ -48148,7 +48153,8 @@ class ChainalignParser {
|
|
|
48148
48153
|
|
|
48149
48154
|
let bFoundAlignment = false;
|
|
48150
48155
|
for(let i = 0, il = dataArray.length; i < il; ++i) {
|
|
48151
|
-
let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48156
|
+
// let align = (me.bNode) ? dataArray[i] : dataArray[i].value;//[0];
|
|
48157
|
+
let align = dataArray[i].value;//[0];
|
|
48152
48158
|
|
|
48153
48159
|
let bEqualMmdbid = false;
|
|
48154
48160
|
let bEqualChain = false;
|
|
@@ -48540,7 +48546,8 @@ class ChainalignParser {
|
|
|
48540
48546
|
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
|
|
48541
48547
|
//var data2 = v2[0];
|
|
48542
48548
|
// index = 0: the mmdb data of target
|
|
48543
|
-
let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
|
|
48549
|
+
// let targetData = (me.bNode) ? dataArray[0] : dataArray[0].value; //[0];
|
|
48550
|
+
let targetData = dataArray[0].value; //[0];
|
|
48544
48551
|
let header = 'HEADER ' + mmdbid_t + '\n';
|
|
48545
48552
|
if(isNaN(mmdbid_t) && mmdbid_t.length > 5) targetData = header + targetData;
|
|
48546
48553
|
|
|
@@ -48558,7 +48565,8 @@ class ChainalignParser {
|
|
|
48558
48565
|
let queryDataArray = [];
|
|
48559
48566
|
|
|
48560
48567
|
for(let index = 1, indexl = chainidArray.length; index < indexl; ++index) {
|
|
48561
|
-
let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48568
|
+
// let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48569
|
+
let queryData = dataArray[index].value;//[0];
|
|
48562
48570
|
|
|
48563
48571
|
let pos = chainidArray[index].indexOf('_');
|
|
48564
48572
|
let mmdbid_q = chainidArray[index].substr(0, pos).toUpperCase();
|
|
@@ -48604,7 +48612,8 @@ class ChainalignParser {
|
|
|
48604
48612
|
ic.qt_start_end[index-1] = undefined;
|
|
48605
48613
|
}
|
|
48606
48614
|
else {
|
|
48607
|
-
let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
|
|
48615
|
+
// let align = (me.bNode) ? dataArray[index2 - missedChainCnt] : dataArray[index2 - missedChainCnt].value;//[0];
|
|
48616
|
+
let align = dataArray[index2 - missedChainCnt].value;//[0];
|
|
48608
48617
|
|
|
48609
48618
|
let bEqualMmdbid = (mmdbid_q == mmdbid_t);
|
|
48610
48619
|
let bEqualChain = (chain_q == chain_t);
|
|
@@ -48822,7 +48831,8 @@ class ChainalignParser {
|
|
|
48822
48831
|
|
|
48823
48832
|
let queryDataArray = [];
|
|
48824
48833
|
for(let index = 0, indexl = structArray.length; index < indexl; ++index) {
|
|
48825
|
-
let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48834
|
+
// let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
48835
|
+
let queryData = dataArray[index].value;//[0];
|
|
48826
48836
|
let header = 'HEADER ' + structArray[index] + '\n';
|
|
48827
48837
|
if(isNaN(structArray[index]) && structArray[index].length > 5) queryData = header + queryData;
|
|
48828
48838
|
|
|
@@ -51274,7 +51284,8 @@ class RealignParser {
|
|
|
51274
51284
|
//var data2 = v2[0];
|
|
51275
51285
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
51276
51286
|
// for(let index = 1, indexl = dataArray.length; index < indexl; ++index) {
|
|
51277
|
-
|
|
51287
|
+
// let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
51288
|
+
let data = dataArray[index].value;//[0];
|
|
51278
51289
|
if(!data) continue;
|
|
51279
51290
|
|
|
51280
51291
|
let fromStruct = chainidArray[index + 1].substr(0, chainidArray[index + 1].indexOf('_')); //.toUpperCase();
|
|
@@ -53124,13 +53135,15 @@ class ParserUtils {
|
|
|
53124
53135
|
let allPromise = Promise.allSettled([prms1, prms2]);
|
|
53125
53136
|
let dataArray = await allPromise;
|
|
53126
53137
|
|
|
53127
|
-
ic.interactionData1 = (me.bNode) ? dataArray[0] : dataArray[0].value;
|
|
53138
|
+
// ic.interactionData1 = (me.bNode) ? dataArray[0] : dataArray[0].value;
|
|
53139
|
+
ic.interactionData1 = dataArray[0].value;
|
|
53128
53140
|
ic.html2ddgm = '';
|
|
53129
53141
|
ic.diagram2dCls.draw2Ddgm(ic.interactionData1, mmdbid1, 0);
|
|
53130
53142
|
if(me.cfg.show2d) me.htmlCls.dialogCls.openDlg('dl_2ddgm', 'Interactions');
|
|
53131
53143
|
|
|
53132
53144
|
|
|
53133
|
-
ic.interactionData2 = (me.bNode) ? dataArray[1] : dataArray[1].value;
|
|
53145
|
+
// ic.interactionData2 = (me.bNode) ? dataArray[1] : dataArray[1].value;
|
|
53146
|
+
ic.interactionData2 = dataArray[1].value;
|
|
53134
53147
|
ic.diagram2dCls.draw2Ddgm(ic.interactionData2, mmdbid2, 1);
|
|
53135
53148
|
|
|
53136
53149
|
ic.html2ddgm += "<br>" + ic.diagram2dCls.set2DdgmNote(true);
|
|
@@ -53178,7 +53191,8 @@ class ParserUtils {
|
|
|
53178
53191
|
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
|
|
53179
53192
|
//var data2 = v2[0];
|
|
53180
53193
|
for(let index = 0, indexl = chainidArray.length; index < indexl; ++index) {
|
|
53181
|
-
let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
53194
|
+
// let data = (me.bNode) ? dataArray[index] : dataArray[index].value;//[0];
|
|
53195
|
+
let data = dataArray[index].value;//[0];
|
|
53182
53196
|
let mmdbid = chainidArray[index].substr(0, chainidArray[index].indexOf('_'));
|
|
53183
53197
|
|
|
53184
53198
|
ic.diagram2dCls.draw2Ddgm(data, mmdbid, 0);
|
|
@@ -56870,7 +56884,8 @@ class Vastplus {
|
|
|
56870
56884
|
|
|
56871
56885
|
let queryDataArray = [];
|
|
56872
56886
|
for(let index = 0, indexl = chainidpairArray.length; index < indexl; ++index) {
|
|
56873
|
-
let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
56887
|
+
// let queryData = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
56888
|
+
let queryData = dataArray[index].value; //[0];
|
|
56874
56889
|
|
|
56875
56890
|
queryDataArray.push(queryData);
|
|
56876
56891
|
/*
|
|
@@ -63084,14 +63099,15 @@ class Dssp {
|
|
|
63084
63099
|
}
|
|
63085
63100
|
}
|
|
63086
63101
|
|
|
63087
|
-
async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d
|
|
63102
|
+
async parseDsspData(dataArray, struArray, bAppend) { let ic = this.icn3d; ic.icn3dui;
|
|
63088
63103
|
//var dataArray =(struArray.length == 1) ? [data] : data;
|
|
63089
63104
|
|
|
63090
63105
|
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
|
|
63091
63106
|
//var data2 = v2[0];
|
|
63092
63107
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
63093
63108
|
//let ssHash = dataArray[index][0];
|
|
63094
|
-
let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
|
|
63109
|
+
//let ssHash = (me.bNode) ? dataArray[index] : dataArray[index].value;
|
|
63110
|
+
let ssHash = dataArray[index].value;
|
|
63095
63111
|
|
|
63096
63112
|
if(ssHash !== undefined && JSON.stringify(ssHash).indexOf('Oops there was a problem') === -1) {
|
|
63097
63113
|
for(let chainNum in ic.chainsSeq) {
|
|
@@ -63373,16 +63389,17 @@ class Dssp {
|
|
|
63373
63389
|
pdbAjaxArray.push(pdbAjax);
|
|
63374
63390
|
}
|
|
63375
63391
|
|
|
63376
|
-
|
|
63392
|
+
try {
|
|
63377
63393
|
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
63378
63394
|
ic.pdbDataArray = await allPromise;
|
|
63379
63395
|
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
63380
|
-
|
|
63381
|
-
|
|
63382
|
-
|
|
63383
|
-
|
|
63384
|
-
|
|
63385
|
-
|
|
63396
|
+
}
|
|
63397
|
+
catch(err) {
|
|
63398
|
+
if(!me.bNode) alert("Error in retrieveing reference PDB data...");
|
|
63399
|
+
//alert("Error in retrieveing reference PDB data...");
|
|
63400
|
+
return;
|
|
63401
|
+
}
|
|
63402
|
+
|
|
63386
63403
|
// }
|
|
63387
63404
|
// }
|
|
63388
63405
|
}
|
|
@@ -63459,12 +63476,13 @@ class Dssp {
|
|
|
63459
63476
|
for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
|
|
63460
63477
|
let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
|
|
63461
63478
|
// ig strand for any subset will have the same k, use the number of residue to separate them
|
|
63462
|
-
let domainid = chainid + '-' + k + '_' + domainAtomsArray[k].length;
|
|
63479
|
+
let domainid = chainid + '-' + k + '_' + Object.keys(domainAtomsArray[k]).length;
|
|
63463
63480
|
ic.domainid2pdb[domainid] = pdb_target;
|
|
63464
63481
|
|
|
63465
63482
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
63466
63483
|
let struct2 = ic.defaultPdbId + index;
|
|
63467
|
-
let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
63484
|
+
//let pdb_query = (me.bNode) ? dataArray[index] : dataArray[index].value; //[0];
|
|
63485
|
+
let pdb_query = dataArray[index].value; //[0];
|
|
63468
63486
|
let header = 'HEADER ' + struct2 + '\n';
|
|
63469
63487
|
pdb_query = header + pdb_query;
|
|
63470
63488
|
|
|
@@ -63478,7 +63496,7 @@ class Dssp {
|
|
|
63478
63496
|
}
|
|
63479
63497
|
}
|
|
63480
63498
|
|
|
63481
|
-
|
|
63499
|
+
try {
|
|
63482
63500
|
let dataArray2 = [];
|
|
63483
63501
|
let allPromise = Promise.allSettled(ajaxArray);
|
|
63484
63502
|
dataArray2 = await allPromise;
|
|
@@ -63487,12 +63505,12 @@ class Dssp {
|
|
|
63487
63505
|
await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
|
|
63488
63506
|
|
|
63489
63507
|
/// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
|
|
63490
|
-
|
|
63491
|
-
|
|
63492
|
-
|
|
63493
|
-
|
|
63494
|
-
|
|
63495
|
-
|
|
63508
|
+
}
|
|
63509
|
+
catch(err) {
|
|
63510
|
+
if(!me.bNode) console.log("Error in aligning with TM-align...");
|
|
63511
|
+
//console.log("Error in aligning with TM-align...");
|
|
63512
|
+
return;
|
|
63513
|
+
}
|
|
63496
63514
|
}
|
|
63497
63515
|
|
|
63498
63516
|
async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -63516,7 +63534,8 @@ class Dssp {
|
|
|
63516
63534
|
let minResidues = 20;
|
|
63517
63535
|
|
|
63518
63536
|
for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
|
|
63519
|
-
let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
|
|
63537
|
+
//let queryData = (me.bNode) ? dataArray[i] : dataArray[i].value; //[0];
|
|
63538
|
+
let queryData = dataArray[i].value; //[0];
|
|
63520
63539
|
|
|
63521
63540
|
if(!queryData) {
|
|
63522
63541
|
if(!me.bNode) console.log("The alignment data for " + domainidpairArray[i] + " is unavailable...");
|
|
@@ -63608,7 +63627,8 @@ class Dssp {
|
|
|
63608
63627
|
let pdb_target = ic.domainid2pdb[domainid];
|
|
63609
63628
|
for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
|
|
63610
63629
|
let struct2 = ic.defaultPdbId + index;
|
|
63611
|
-
let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
|
|
63630
|
+
//let pdb_query = (me.bNode) ? ic.pdbDataArray[index] : ic.pdbDataArray[index].value; //[0];
|
|
63631
|
+
let pdb_query = ic.pdbDataArray[index].value; //[0];
|
|
63612
63632
|
let header = 'HEADER ' + struct2 + '\n';
|
|
63613
63633
|
pdb_query = header + pdb_query;
|
|
63614
63634
|
|
|
@@ -72154,25 +72174,35 @@ iCn3DUI.prototype.show3DStructure = async function(pdbStr) { let me = this;
|
|
|
72154
72174
|
let data = await me.getAjaxPromise(url, 'json', false, 'The RID ' + me.cfg.rid + ' may have expired...');
|
|
72155
72175
|
|
|
72156
72176
|
for(let q = 0, ql = data.BlastOutput2.length; q < ql; ++q) {
|
|
72157
|
-
|
|
72158
|
-
let hitArray
|
|
72177
|
+
|
|
72178
|
+
let hitArray;
|
|
72179
|
+
if(data.BlastOutput2[q].report.results.iterations) { // psi-blast may have "iterations". Use the last iteration.
|
|
72180
|
+
let nIterations = data.BlastOutput2[q].report.results.iterations.length;
|
|
72181
|
+
if(data.BlastOutput2[q].report.results.iterations[nIterations - 1].search.query_id != me.cfg.query_id) continue;
|
|
72182
|
+
hitArray = data.BlastOutput2[q].report.results.iterations[nIterations - 1].search.hits;
|
|
72183
|
+
}
|
|
72184
|
+
else { // blastp may not have "iterations"
|
|
72185
|
+
if(data.BlastOutput2[q].report.results.search.query_id != me.cfg.query_id) continue;
|
|
72186
|
+
hitArray = data.BlastOutput2[q].report.results.search.hits;
|
|
72187
|
+
}
|
|
72188
|
+
|
|
72159
72189
|
let qseq = undefined;
|
|
72160
72190
|
for(let i = 0, il = hitArray.length; i < il; ++i) {
|
|
72161
|
-
|
|
72162
|
-
|
|
72163
|
-
|
|
72164
|
-
|
|
72165
|
-
|
|
72166
|
-
|
|
72167
|
-
|
|
72191
|
+
let hit = hitArray[i];
|
|
72192
|
+
let bFound = false;
|
|
72193
|
+
for(let j = 0, jl = hit.description.length; j < jl; ++j) {
|
|
72194
|
+
let acc = hit.description[j].accession;
|
|
72195
|
+
if(acc == me.cfg.blast_rep_id) {
|
|
72196
|
+
bFound = true;
|
|
72197
|
+
break;
|
|
72198
|
+
}
|
|
72199
|
+
}
|
|
72200
|
+
if(bFound) {
|
|
72201
|
+
qseq = hit.hsps[0].qseq;
|
|
72202
|
+
//remove gap '-'
|
|
72203
|
+
qseq = qseq.replace(/-/g, '');
|
|
72204
|
+
break;
|
|
72168
72205
|
}
|
|
72169
|
-
}
|
|
72170
|
-
if(bFound) {
|
|
72171
|
-
qseq = hit.hsps[0].qseq;
|
|
72172
|
-
//remove gap '-'
|
|
72173
|
-
qseq = qseq.replace(/-/g, '');
|
|
72174
|
-
break;
|
|
72175
|
-
}
|
|
72176
72206
|
}
|
|
72177
72207
|
if(qseq !== undefined) me.cfg.query_id = qseq;
|
|
72178
72208
|
ic.inputid = me.cfg.query_id + '_' + me.cfg.blast_rep_id;
|