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.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
- ic.refnumCls.exportRefnum('kabat');
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'] = 'IgI';
71358
- ic.ref2igtype['CD3e_6jxrf_human_C1'] = 'IgI';
71359
- ic.ref2igtype['CD3g_6jxrg_human_C2'] = 'IgI';
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'] = 'IgC2';
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'] = 'IgFN3';
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'] = 'IgC2';
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'] = 'IgC2';
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'] = 'IgV';
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
- // 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 + "...");
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
- for(let m = 0, ml = ic.structures[structure].length; m < ml; ++m) {
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.1';
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icn3d",
3
- "version": "3.31.6",
3
+ "version": "3.31.8",
4
4
  "main": "./icn3d.js",
5
5
  "exports": {
6
6
  ".": {