icn3d 3.31.6 → 3.31.8
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 +49 -36
- package/icn3d.min.js +3 -3
- package/icn3d.module.js +49 -36
- package/package.json +1 -1
package/icn3d.module.js
CHANGED
|
@@ -10055,7 +10055,7 @@ class ClickMenu {
|
|
|
10055
10055
|
});
|
|
10056
10056
|
|
|
10057
10057
|
me.myEventCls.onIds("#" + me.pre + "mn1_exportKabat", "click", async function(e) { let ic = me.icn3d; //e.preventDefault();
|
|
10058
|
-
|
|
10058
|
+
ic.refnumCls.exportRefnum('kabat');
|
|
10059
10059
|
thisClass.setLogCmd("export refnum kabat", true);
|
|
10060
10060
|
});
|
|
10061
10061
|
|
|
@@ -41834,6 +41834,7 @@ class AnnoIg {
|
|
|
41834
41834
|
ic.chain2igArray[chnid] = [];
|
|
41835
41835
|
this.setChain2igArray(chnid, giSeq, bCustom);
|
|
41836
41836
|
|
|
41837
|
+
|
|
41837
41838
|
// remove Igs without BCEF strands one more time
|
|
41838
41839
|
let igArray = ic.chain2igArray[chnid];
|
|
41839
41840
|
|
|
@@ -41906,6 +41907,7 @@ class AnnoIg {
|
|
|
41906
41907
|
}
|
|
41907
41908
|
}
|
|
41908
41909
|
|
|
41910
|
+
|
|
41909
41911
|
// reset ic.chain2igArray
|
|
41910
41912
|
ic.chain2igArray[chnid] = [];
|
|
41911
41913
|
this.setChain2igArray(chnid, giSeq, bCustom);
|
|
@@ -45323,7 +45325,8 @@ class AddTrack {
|
|
|
45323
45325
|
}
|
|
45324
45326
|
|
|
45325
45327
|
getExonHtml(exonIndex, colorGradient, from, to, genomeRange, chainid, simpTitle) { let ic = this.icn3d; ic.icn3dui;
|
|
45326
|
-
return '<div style="display:inline-block; color:white!important; width:' + Math.round(ic.seqAnnWidth *(to - from + 1) /(ic.maxAnnoLength + ic.nTotalGap)) + 'px;" class="icn3d-seqTitle icn3d-link icn3d-blue" domain="' + (exonIndex + 1) + '" from="' + from + '" to="' + to + '" setname="' + simpTitle + ', Exon ' + (exonIndex + 1) + '" title="Exon ' + (exonIndex + 1) + ': ' + genomeRange + ' genomic interval" anno="sequence" chain="' + chainid + '"><div style="height: 12px; border: 1px solid #000; background: linear-gradient(to right, ' + colorGradient + ');"></div></div>';
|
|
45328
|
+
// return '<div style="display:inline-block; color:white!important; width:' + Math.round(ic.seqAnnWidth *(to - from + 1) /(ic.maxAnnoLength + ic.nTotalGap)) + 'px;" class="icn3d-seqTitle icn3d-link icn3d-blue" domain="' + (exonIndex + 1) + '" from="' + from + '" to="' + to + '" setname="' + simpTitle + ', Exon ' + (exonIndex + 1) + '" title="Exon ' + (exonIndex + 1) + ': ' + genomeRange + ' genomic interval" anno="sequence" chain="' + chainid + '"><div style="height: 12px; border: 1px solid #000; background: linear-gradient(to right, ' + colorGradient + ');"></div></div>';
|
|
45329
|
+
return '<div style="display:inline-block; color:white!important; width:' + Math.round(ic.seqAnnWidth *(to - from + 1) /(ic.maxAnnoLength + ic.nTotalGap)) + 'px;" class="icn3d-seqTitle icn3d-link icn3d-blue" domain="' + (exonIndex + 1) + '" from="' + from + '" to="' + to + '" setname="' + simpTitle + ', #' + (exonIndex + 1) + '" title="Exon: ' + genomeRange + ' genomic interval" anno="sequence" chain="' + chainid + '"><div style="height: 12px; border: 1px solid #000; background: linear-gradient(to right, ' + colorGradient + ');"></div></div>';
|
|
45327
45330
|
}
|
|
45328
45331
|
|
|
45329
45332
|
getExonColor(start, end, pos) { let ic = this.icn3d; ic.icn3dui;
|
|
@@ -52530,7 +52533,7 @@ class ContactMap {
|
|
|
52530
52533
|
let color2 = rHex + gHex + bHex;
|
|
52531
52534
|
|
|
52532
52535
|
if(bLink) linkStr += ', ';
|
|
52533
|
-
linkStr += '{"source": "' + idStr + postA + '", "target": "' + idStr2 + postB + '", "v": 11, "c": "' + color2 + '"}\n';
|
|
52536
|
+
linkStr += '{"source": "' + idStr + postA + '", "target": "' + idStr2 + postB + '", "v": 11, "c": "' + color2 + '", "pae": ' + parseInt(distMatrix[i][j]) + '}\n';
|
|
52534
52537
|
bLink = true;
|
|
52535
52538
|
}
|
|
52536
52539
|
}
|
|
@@ -53978,20 +53981,14 @@ class ChainalignParser {
|
|
|
53978
53981
|
|
|
53979
53982
|
// add color only for the newly loaded structures
|
|
53980
53983
|
ic.setColorCls.setColorByOptions(opts, hAtoms);
|
|
53981
|
-
|
|
53984
|
+
|
|
53985
|
+
await ic.ParserUtilsCls.renderStructure();
|
|
53986
|
+
|
|
53982
53987
|
if(ic.bAnnoShown) {
|
|
53983
53988
|
await ic.showAnnoCls.showAnnotations();
|
|
53984
53989
|
ic.annotationCls.resetAnnoTabAll();
|
|
53985
53990
|
}
|
|
53986
53991
|
|
|
53987
|
-
// await ic.ParserUtilsCls.renderStructure();
|
|
53988
|
-
// ic.drawCls.draw();
|
|
53989
|
-
|
|
53990
|
-
// if(ic.bAnnoShown) {
|
|
53991
|
-
// await ic.showAnnoCls.showAnnotations();
|
|
53992
|
-
// ic.annotationCls.resetAnnoTabAll();
|
|
53993
|
-
// }
|
|
53994
|
-
|
|
53995
53992
|
if(me.cfg.rotate !== undefined) ic.resizeCanvasCls.rotStruc(me.cfg.rotate, true);
|
|
53996
53993
|
|
|
53997
53994
|
if(bQuery && me.cfg.matchedchains) {
|
|
@@ -56155,10 +56152,12 @@ class BcifParser {
|
|
|
56155
56152
|
let conf_type_idArray = struct_conf.getColumn("conf_type_id");
|
|
56156
56153
|
|
|
56157
56154
|
let chain1Array = struct_conf.getColumn("beg_auth_asym_id");
|
|
56158
|
-
let resi1Array = struct_conf.getColumn("beg_label_seq_id");
|
|
56155
|
+
// let resi1Array = struct_conf.getColumn("beg_label_seq_id");
|
|
56156
|
+
let resi1Array = struct_conf.getColumn("beg_auth_seq_id");
|
|
56159
56157
|
|
|
56160
56158
|
let chain2Array = struct_conf.getColumn("end_auth_asym_id");
|
|
56161
|
-
let resi2Array = struct_conf.getColumn("end_label_seq_id");
|
|
56159
|
+
// let resi2Array = struct_conf.getColumn("end_label_seq_id");
|
|
56160
|
+
let resi2Array = struct_conf.getColumn("end_auth_seq_id");
|
|
56162
56161
|
|
|
56163
56162
|
// Iterate through every row in the struct_conf category table, where each row delineates an interatomic connection
|
|
56164
56163
|
let confSize = struct_conf.rowCount;
|
|
@@ -56203,10 +56202,12 @@ class BcifParser {
|
|
|
56203
56202
|
let struct_sheet_range = block.getCategory("_struct_sheet_range");
|
|
56204
56203
|
|
|
56205
56204
|
let chain1Array = struct_sheet_range.getColumn("beg_auth_asym_id");
|
|
56206
|
-
let resi1Array = struct_sheet_range.getColumn("beg_label_seq_id");
|
|
56205
|
+
// let resi1Array = struct_sheet_range.getColumn("beg_label_seq_id");
|
|
56206
|
+
let resi1Array = struct_sheet_range.getColumn("beg_auth_seq_id");
|
|
56207
56207
|
|
|
56208
56208
|
let chain2Array = struct_sheet_range.getColumn("end_auth_asym_id");
|
|
56209
|
-
let resi2Array = struct_sheet_range.getColumn("end_label_seq_id");
|
|
56209
|
+
// let resi2Array = struct_sheet_range.getColumn("end_label_seq_id");
|
|
56210
|
+
let resi2Array = struct_sheet_range.getColumn("end_auth_seq_id");
|
|
56210
56211
|
|
|
56211
56212
|
// Iterate through every row in the struct_sheet_range category table, where each row delineates an interatomic connection
|
|
56212
56213
|
let sheetSize = struct_sheet_range.rowCount;
|
|
@@ -59711,9 +59712,13 @@ class ParserUtils {
|
|
|
59711
59712
|
|
|
59712
59713
|
for(let i = 0, il = ic.realignResid[chainid_t].length; i < il && i < ic.realignResid[chainid_q].length; ++i) {
|
|
59713
59714
|
let resid_t = ic.realignResid[chainid_t][i].resid;
|
|
59715
|
+
if(!resid_t) continue;
|
|
59716
|
+
|
|
59714
59717
|
let pos_t = resid_t.lastIndexOf('_');
|
|
59715
59718
|
let resi_t = parseInt(resid_t.substr(pos_t + 1));
|
|
59716
59719
|
let resid_q = ic.realignResid[chainid_q][i].resid;
|
|
59720
|
+
if(!resid_q) continue;
|
|
59721
|
+
|
|
59717
59722
|
let pos_q = resid_q.lastIndexOf('_');
|
|
59718
59723
|
let resi_q = parseInt(resid_q.substr(pos_q + 1));
|
|
59719
59724
|
|
|
@@ -60337,7 +60342,9 @@ class ParserUtils {
|
|
|
60337
60342
|
|
|
60338
60343
|
if(data && data.pdbid) {
|
|
60339
60344
|
let question = "This is a single-spanning (bitopic) transmembrane protein according to the Membranome database. Do you want to align the protein with the model from Membranome? If you click \"OK\", you can press the letter \"a\" to alternate the structures.";
|
|
60340
|
-
|
|
60345
|
+
|
|
60346
|
+
if (me.bNode) return;
|
|
60347
|
+
|
|
60341
60348
|
if (me.cfg.afmem == 'off') {
|
|
60342
60349
|
// do nothing
|
|
60343
60350
|
/// if(ic.deferredOpm !== undefined) ic.deferredOpm.resolve();
|
|
@@ -63724,10 +63731,12 @@ class LoadCIF {
|
|
|
63724
63731
|
let conf_type_idArray = struct_conf.getColumn("conf_type_id");
|
|
63725
63732
|
|
|
63726
63733
|
let chain1Array = struct_conf.getColumn("beg_auth_asym_id");
|
|
63727
|
-
let resi1Array = struct_conf.getColumn("beg_label_seq_id");
|
|
63734
|
+
// let resi1Array = struct_conf.getColumn("beg_label_seq_id");
|
|
63735
|
+
let resi1Array = struct_conf.getColumn("beg_auth_seq_id");
|
|
63728
63736
|
|
|
63729
63737
|
struct_conf.getColumn("end_auth_asym_id");
|
|
63730
|
-
let resi2Array = struct_conf.getColumn("end_label_seq_id");
|
|
63738
|
+
// let resi2Array = struct_conf.getColumn("end_label_seq_id");
|
|
63739
|
+
let resi2Array = struct_conf.getColumn("end_auth_seq_id");
|
|
63731
63740
|
|
|
63732
63741
|
// Iterate through every row in the struct_conf category table, where each row delineates an interatomic connection
|
|
63733
63742
|
let confSize = struct_conf.rowCount;
|
|
@@ -63766,10 +63775,12 @@ class LoadCIF {
|
|
|
63766
63775
|
let struct_sheet_range = block.getCategory("_struct_sheet_range");
|
|
63767
63776
|
|
|
63768
63777
|
let chain1Array = struct_sheet_range.getColumn("beg_auth_asym_id");
|
|
63769
|
-
let resi1Array = struct_sheet_range.getColumn("beg_label_seq_id");
|
|
63778
|
+
// let resi1Array = struct_sheet_range.getColumn("beg_label_seq_id");
|
|
63779
|
+
let resi1Array = struct_sheet_range.getColumn("beg_auth_seq_id");
|
|
63770
63780
|
|
|
63771
63781
|
struct_sheet_range.getColumn("end_auth_asym_id");
|
|
63772
|
-
let resi2Array = struct_sheet_range.getColumn("end_label_seq_id");
|
|
63782
|
+
// let resi2Array = struct_sheet_range.getColumn("end_label_seq_id");
|
|
63783
|
+
let resi2Array = struct_sheet_range.getColumn("end_auth_seq_id");
|
|
63773
63784
|
|
|
63774
63785
|
// Iterate through every row in the struct_sheet_range category table, where each row delineates an interatomic connection
|
|
63775
63786
|
let sheetSize = struct_sheet_range.rowCount;
|
|
@@ -63777,7 +63788,7 @@ class LoadCIF {
|
|
|
63777
63788
|
let startChain = chain1Array.getString(i);
|
|
63778
63789
|
let startResi = parseInt(resi1Array.getString(i));
|
|
63779
63790
|
let endResi = parseInt(resi2Array.getString(i));
|
|
63780
|
-
|
|
63791
|
+
|
|
63781
63792
|
for(let j = startResi; j <= endResi; ++j) {
|
|
63782
63793
|
let resid = structure + "_" + startChain + "_" + j;
|
|
63783
63794
|
sheetArray.push(resid);
|
|
@@ -71354,13 +71365,13 @@ class Dssp {
|
|
|
71354
71365
|
ic.ref2igtype['CD28_1yjdC_human_V'] = 'IgV';
|
|
71355
71366
|
ic.ref2igtype['CD2_1hnfA_human_C2-n2'] = 'IgC2';
|
|
71356
71367
|
ic.ref2igtype['CD2_1hnfA_human_V-n1'] = 'IgV';
|
|
71357
|
-
ic.ref2igtype['CD3d_6jxrd_human_C1'] = '
|
|
71358
|
-
ic.ref2igtype['CD3e_6jxrf_human_C1'] = '
|
|
71359
|
-
ic.ref2igtype['CD3g_6jxrg_human_C2'] = '
|
|
71368
|
+
ic.ref2igtype['CD3d_6jxrd_human_C1'] = 'IgC1';
|
|
71369
|
+
ic.ref2igtype['CD3e_6jxrf_human_C1'] = 'IgC1';
|
|
71370
|
+
ic.ref2igtype['CD3g_6jxrg_human_C2'] = 'IgC2';
|
|
71360
71371
|
ic.ref2igtype['CD8a_1cd8A_human_V'] = 'IgV';
|
|
71361
71372
|
ic.ref2igtype['CoAtomerGamma1_1r4xA_human'] = 'IgE';
|
|
71362
71373
|
ic.ref2igtype['Contactin1_2ee2A_human_FN3-n9'] = 'IgFN3';
|
|
71363
|
-
ic.ref2igtype['Contactin1_3s97C_human_Iset-n2'] = '
|
|
71374
|
+
ic.ref2igtype['Contactin1_3s97C_human_Iset-n2'] = 'IgI';
|
|
71364
71375
|
ic.ref2igtype['CuZnSuperoxideDismutase_1hl5C_human'] = 'SOD';
|
|
71365
71376
|
ic.ref2igtype['ECadherin_4zt1A_human_n2'] = 'Cadherin';
|
|
71366
71377
|
ic.ref2igtype['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'] = 'IgE';
|
|
@@ -71368,7 +71379,7 @@ class Dssp {
|
|
|
71368
71379
|
ic.ref2igtype['FAB-HEAVY_5esv_V-n1'] = 'IgV';
|
|
71369
71380
|
ic.ref2igtype['FAB-LIGHT_5esv_C1-n2'] = 'IgC1';
|
|
71370
71381
|
ic.ref2igtype['FAB-LIGHT_5esv_V-n1'] = 'IgV';
|
|
71371
|
-
ic.ref2igtype['GHR_1axiB_human_C1-n1'] = '
|
|
71382
|
+
ic.ref2igtype['GHR_1axiB_human_C1-n1'] = 'IgC1';
|
|
71372
71383
|
ic.ref2igtype['ICOS_6x4gA_human_V'] = 'IgV';
|
|
71373
71384
|
ic.ref2igtype['IL6Rb_1bquB_human_FN3-n2'] = 'IgFN3';
|
|
71374
71385
|
ic.ref2igtype['IL6Rb_1bquB_human_FN3-n3'] = 'IgFN3';
|
|
@@ -71376,7 +71387,7 @@ class Dssp {
|
|
|
71376
71387
|
ic.ref2igtype['InsulinR_8guyE_human_FN3-n2'] = 'IgFN3';
|
|
71377
71388
|
ic.ref2igtype['IsdA_2iteA_bacteria'] = 'IgE';
|
|
71378
71389
|
ic.ref2igtype['JAM1_1nbqA_human_Iset-n2'] = 'IgI';
|
|
71379
|
-
ic.ref2igtype['LAG3_7tzgD_human_C1-n2'] = '
|
|
71390
|
+
ic.ref2igtype['LAG3_7tzgD_human_C1-n2'] = 'IgC1';
|
|
71380
71391
|
ic.ref2igtype['LAG3_7tzgD_human_V-n1'] = 'IgV';
|
|
71381
71392
|
ic.ref2igtype['LaminAC_1ifrA_human'] = 'Lamin';
|
|
71382
71393
|
ic.ref2igtype['MHCIa_7phrH_human_C1'] = 'IgC1';
|
|
@@ -71390,7 +71401,7 @@ class Dssp {
|
|
|
71390
71401
|
ic.ref2igtype['RBPJ_6py8C_human_Unk-n1'] = 'IgFN3-like';
|
|
71391
71402
|
ic.ref2igtype['RBPJ_6py8C_human_Unk-n2'] = 'IgFN3-like';
|
|
71392
71403
|
ic.ref2igtype['Sidekick2_1wf5A_human_FN3-n7'] = 'IgFN3';
|
|
71393
|
-
ic.ref2igtype['Siglec3_5j0bB_human_C1-n2'] = '
|
|
71404
|
+
ic.ref2igtype['Siglec3_5j0bB_human_C1-n2'] = 'IgC1';
|
|
71394
71405
|
ic.ref2igtype['TCRa_6jxrm_human_C1-n2'] = 'IgC1';
|
|
71395
71406
|
ic.ref2igtype['TCRa_6jxrm_human_V-n1'] = 'IgV';
|
|
71396
71407
|
ic.ref2igtype['TEAD1_3kysC_human'] = 'IgE';
|
|
@@ -71399,7 +71410,7 @@ class Dssp {
|
|
|
71399
71410
|
ic.ref2igtype['Titin_4uowM_human_Iset-n152'] = 'IgI';
|
|
71400
71411
|
ic.ref2igtype['VISTA_6oilA_human_V'] = 'IgV';
|
|
71401
71412
|
ic.ref2igtype['VNAR_1t6vN_shark_V'] = 'IgV';
|
|
71402
|
-
ic.ref2igtype['VTCN1_Q7Z7D3_human_C1-n2'] = '
|
|
71413
|
+
ic.ref2igtype['VTCN1_Q7Z7D3_human_C1-n2'] = 'IgC1';
|
|
71403
71414
|
}
|
|
71404
71415
|
|
|
71405
71416
|
getPdbAjaxArray() { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -71808,12 +71819,13 @@ class Dssp {
|
|
|
71808
71819
|
// if(!(bBstrand && bCstrand && bEstrand && bFstrand)) {
|
|
71809
71820
|
if(!me.bNode && !(bBstrand && bCstrand && bEstrand && bFstrand)) console.log("Some of the Ig strands B, C, E, F are missing in the domain " + domainid + "...");
|
|
71810
71821
|
if(!me.bNode && !(bBSheet && bCSheet && bESheet && bFSheet)) console.log("Some of the Ig strands B, C, E, F are not beta sheets...");
|
|
71811
|
-
|
|
71822
|
+
|
|
71812
71823
|
if(ic.domainid2refpdbname[domainid][0] == refpdbname) {
|
|
71813
71824
|
delete ic.domainid2refpdbname[domainid];
|
|
71814
71825
|
delete ic.domainid2score[domainid];
|
|
71815
71826
|
}
|
|
71816
|
-
continue;
|
|
71827
|
+
continue;
|
|
71828
|
+
}
|
|
71817
71829
|
// }
|
|
71818
71830
|
|
|
71819
71831
|
}
|
|
@@ -72090,7 +72102,7 @@ class Dssp {
|
|
|
72090
72102
|
|
|
72091
72103
|
if(seg.q_start.indexOf('8550') != -1) {
|
|
72092
72104
|
// check C' and D strands
|
|
72093
|
-
if(cntBtwCE == 1) {
|
|
72105
|
+
if(cntBtwCE == 1 && CAtom && EAtom && (CpAtom || DAtom)) {
|
|
72094
72106
|
let distToC = 999, distToE = 999;
|
|
72095
72107
|
for(let j = 0, jl = CAtomArray.length; j < jl; ++j) {
|
|
72096
72108
|
let dist = (bCpstrand) ? CpAtom.coord.distanceTo(CAtomArray[j].coord) : DAtom.coord.distanceTo(CAtomArray[j].coord);
|
|
@@ -72378,7 +72390,7 @@ class Dssp {
|
|
|
72378
72390
|
// 1. show IgStrand ref numbers
|
|
72379
72391
|
if(type == 'igstrand' || type == 'IgStrand') {
|
|
72380
72392
|
// iGStrand reference numbers were adjusted when showing in sequences
|
|
72381
|
-
// if(me.bNode) {
|
|
72393
|
+
// if(me.bNode) {
|
|
72382
72394
|
if(ic.bShowRefnum) {
|
|
72383
72395
|
for(let chnid in ic.chains) {
|
|
72384
72396
|
let atom = ic.firstAtomObjCls.getFirstAtomObj(ic.chains[chnid]);
|
|
@@ -72429,7 +72441,8 @@ class Dssp {
|
|
|
72429
72441
|
let bIgDomain = stru2bIgDomain.hasOwnProperty(structure) ? 1 : 0;
|
|
72430
72442
|
|
|
72431
72443
|
refData += '{"' + structure + '": {"Ig domain" : ' + bIgDomain + ', "igs": [\n';
|
|
72432
|
-
|
|
72444
|
+
|
|
72445
|
+
for(let m = 0, ml = ic.structures[structure].length; ic.bShowRefnum && m < ml; ++m) {
|
|
72433
72446
|
let chnid = ic.structures[structure][m];
|
|
72434
72447
|
let igArray = ic.chain2igArray[chnid];
|
|
72435
72448
|
|
|
@@ -81213,7 +81226,7 @@ class iCn3DUI {
|
|
|
81213
81226
|
//even when multiple iCn3D viewers are shown together.
|
|
81214
81227
|
this.pre = this.cfg.divid + "_";
|
|
81215
81228
|
|
|
81216
|
-
this.REVISION = '3.31.
|
|
81229
|
+
this.REVISION = '3.31.2';
|
|
81217
81230
|
|
|
81218
81231
|
// In nodejs, iCn3D defines "window = {navigator: {}}"
|
|
81219
81232
|
this.bNode = (Object.keys(window).length < 2) ? true : false;
|