icn3d 3.8.2 → 3.8.3

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.
Files changed (2) hide show
  1. package/icn3d.js +94 -45
  2. package/package.json +1 -1
package/icn3d.js CHANGED
@@ -6862,10 +6862,11 @@ class Tube {
6862
6862
  firstAtom = atom;
6863
6863
  }
6864
6864
 
6865
- //if (index > 0 && (currentChain !== atom.chain || Math.abs(atom.coord.x - prevAtom.coord.x) > maxDist || Math.abs(atom.coord.y - prevAtom.coord.y) > maxDist || Math.abs(atom.coord.z - prevAtom.coord.z) > maxDist
6866
- // || (currentResi + 1 !== atom.resi && (Math.abs(atom.coord.x - prevAtom.coord.x) > maxDist2 || Math.abs(atom.coord.y - prevAtom.coord.y) > maxDist2 || Math.abs(atom.coord.z - prevAtom.coord.z) > maxDist2) )
6865
+ atom.structure + '_' + atom.chain + '_' + (parseInt(atom.resi) - 1).toString();
6866
+
6867
6867
  if (index > 0 && (currentChain !== atom.chain || Math.abs(atom.coord.x - prevAtom.coord.x) > maxDist || Math.abs(atom.coord.y - prevAtom.coord.y) > maxDist || Math.abs(atom.coord.z - prevAtom.coord.z) > maxDist
6868
- || (parseInt(currentResi) + 1 < parseInt(atom.resi) && (Math.abs(atom.coord.x - prevAtom.coord.x) > maxDist2 || Math.abs(atom.coord.y - prevAtom.coord.y) > maxDist2 || Math.abs(atom.coord.z - prevAtom.coord.z) > maxDist2) )
6868
+ // || (parseInt(currentResi) + 1 < parseInt(atom.resi) && (Math.abs(atom.coord.x - prevAtom.coord.x) > maxDist2 || Math.abs(atom.coord.y - prevAtom.coord.y) > maxDist2 || Math.abs(atom.coord.z - prevAtom.coord.z) > maxDist2) && ic.firstAtomObjCls.getFirstCalphaAtomObj(ic.residues[resid]) && ic.firstAtomObjCls.getFirstCalphaAtomObj(ic.residues[resid]).ss == 'helix')
6869
+ || (parseInt(currentResi) + 1 < parseInt(atom.resi) && (Math.abs(atom.coord.x - prevAtom.coord.x) > maxDist2 || Math.abs(atom.coord.y - prevAtom.coord.y) > maxDist2 || Math.abs(atom.coord.z - prevAtom.coord.z) > maxDist2))
6869
6870
  ) ) {
6870
6871
  if(bHighlight !== 2) {
6871
6872
  if(!isNaN(firstAtom.resi) && !isNaN(prevAtom.resi)) {
@@ -14360,9 +14361,7 @@ class HBond {
14360
14361
  }
14361
14362
 
14362
14363
  //if(result > kMaxHBondEnergy) {
14363
- if(atom.ss == 'helix' && atomHbond[j].ss == 'helix' && result > kMaxHBondEnergy) {
14364
- continue;
14365
- }
14364
+ if(atom.ss == 'helix' && atomHbond[j].ss == 'helix' && result > kMaxHBondEnergy) ;
14366
14365
  }
14367
14366
  }
14368
14367
  else {
@@ -15511,7 +15510,8 @@ class GetGraph {
15511
15510
  let strokewidth = '1';
15512
15511
  let textcolor = '#000';
15513
15512
  let fontsize = '6px'; // '6';
15514
- let html = (bAfMap) ? "<g>" : "<g class='icn3d-node' resid='" + resid + "' >";
15513
+ //let html = (bAfMap) ? "<g>" : "<g class='icn3d-node' resid='" + resid + "' >";
15514
+ let html = "<g class='icn3d-node' resid='" + resid + "' >";
15515
15515
  html += "<title>" + node.id + "</title>";
15516
15516
  if(bVertical) {
15517
15517
  html += "<circle cx='" + y + "' cy='" + x + "' r='" + r + "' fill='" + color + "' stroke-width='" + strokewidth + "' stroke='" + strokecolor + "' resid='" + resid + "' />";
@@ -15554,10 +15554,10 @@ class GetGraph {
15554
15554
  else if(node.s == 'b') {
15555
15555
  nodeArray2.push(node);
15556
15556
  }
15557
- //else if(node.s == 'ab') {
15558
- // nodeArray1.push(node);
15559
- // nodeArray2.push(node);
15560
- //}
15557
+ else if(node.s == 'ab') {
15558
+ nodeArray1.push(node);
15559
+ nodeArray2.push(node);
15560
+ }
15561
15561
  }
15562
15562
  // sort array
15563
15563
  nodeArray1.sort(function(a,b) {
@@ -15614,9 +15614,12 @@ class GetGraph {
15614
15614
  }
15615
15615
  ic.graphStr = JSON.stringify(graphJson);
15616
15616
  }
15617
+
15618
+ /*
15617
15619
  if(ic.bGraph) ic.drawGraphCls.drawGraph(ic.graphStr, ic.pre + 'dl_graph');
15618
15620
  if(ic.bLinegraph) ic.lineGraphCls.drawLineGraph(ic.graphStr);
15619
15621
  if(ic.bScatterplot) ic.lineGraphCls.drawLineGraph(ic.graphStr, true);
15622
+ */
15620
15623
  }
15621
15624
 
15622
15625
  handleForce() { let ic = this.icn3d, me = ic.icn3dui;
@@ -15945,7 +15948,7 @@ class LineGraph {
15945
15948
  let resid2 = chainid2 + '_' + idArrayB[4];
15946
15949
 
15947
15950
  let mapping1, mapping2;
15948
-
15951
+
15949
15952
  if(ic.chainsMapping[chainid1] && ic.chainsMapping[chainid1][resid1]
15950
15953
  && ic.chainsMapping[chainid2] && ic.chainsMapping[chainid2][resid2]) {
15951
15954
  mapping1 = (nodeA.s == "a") ? ic.chainsMapping[chainid1][resid1] : ic.chainsMapping[chainid2][resid2];
@@ -15961,7 +15964,7 @@ class LineGraph {
15961
15964
  }
15962
15965
  }
15963
15966
  }
15964
-
15967
+
15965
15968
  // set linkArraySplitCommon and nameHashSplitCommon
15966
15969
  // set linkArraySplitDiff and nameHashSplitDiff
15967
15970
  let separatorCommon = "=>", separatorDiff = "==>", postCommon = "-", postDiff = "--";
@@ -16077,17 +16080,19 @@ class LineGraph {
16077
16080
 
16078
16081
  width = (maxWidth + 2) * (r + gap) + 2 * marginX;
16079
16082
  }
16080
- let id;
16083
+ let id, graphWidth;
16081
16084
  if(bScatterplot) {
16082
16085
  ic.scatterplotWidth = 2 * width;
16086
+ graphWidth = ic.scatterplotWidth;
16083
16087
  id = me.scatterplotid;
16084
16088
  } else {
16085
16089
  ic.linegraphWidth = 2 * width;
16090
+ graphWidth = ic.linegraphWidth;
16086
16091
  id = me.linegraphid;
16087
16092
  }
16088
16093
  html =(strucArray.length == 0) ? "No interactions found for each structure<br><br>" :
16089
16094
  "2D integration graph for " + strucArray.length + " structure(s) <b>" + strucArray + "</b>. There are three sections: \"Interactions\", \"Common interactions\", and \"Different interactions\". Each section has " + strucArray.length + " graphs.<br><br>";
16090
- html += "<svg id='" + id + "' viewBox='0,0," + width + "," + heightAll + "'>";
16095
+ html += "<svg id='" + id + "' viewBox='0,0," + width + "," + heightAll + "' width='" + graphWidth + "px'>";
16091
16096
 
16092
16097
  let result, heightFinal = 0;
16093
16098
 
@@ -16172,15 +16177,15 @@ class LineGraph {
16172
16177
  // draw common interaction
16173
16178
  let label, postfix;
16174
16179
  if(bCommonDiff == 0) {
16175
- label = "Interactions in structure ";
16180
+ label = "Interactions in ";
16176
16181
  postfix = "";
16177
16182
  }
16178
16183
  else if(bCommonDiff == 1) {
16179
- label = "Common interactions in structure ";
16184
+ label = "Common interactions in ";
16180
16185
  postfix = "_common";
16181
16186
  }
16182
16187
  else if(bCommonDiff == 2) {
16183
- label = "Different interactions in structure ";
16188
+ label = "Different interactions in ";
16184
16189
  postfix = "_diff";
16185
16190
  }
16186
16191
 
@@ -16237,7 +16242,7 @@ class LineGraph {
16237
16242
  // draw label
16238
16243
  if(label) {
16239
16244
  height += textHeight;
16240
- html += "<text x='" + margin1 + "' y='" + height + "' style='font-size:8px; font-weight:bold'>" + label + "</text>";
16245
+ html += "<text x='" + margin + "' y='" + height + "' style='font-size:8px; font-weight:bold'>" + label + "</text>";
16241
16246
  }
16242
16247
 
16243
16248
  let h1 = 30 + height,
@@ -16388,8 +16393,13 @@ class LineGraph {
16388
16393
 
16389
16394
  if(bAfMap && ic.hex2skip[link.c]) ;
16390
16395
  else if(bAfMap && ic.hex2id[link.c]) {
16391
- let id = ic.hex2id[link.c];
16392
- html += "<use href='#" + id + "' x='" +(pos2.x - halfSize).toString() + "' y='" +(pos1.y - halfSize).toString() + "' />";
16396
+ ic.hex2id[link.c];
16397
+ // html += "<use href='#" + id + "' x='" +(pos2.x - halfSize).toString() + "' y='" +(pos1.y - halfSize).toString() + "' />";
16398
+
16399
+ //html += "<g class='icn3d-interaction' resid1='" + resid1 + "' resid2='" + resid2 + "' >";
16400
+ //html += "<title>Interaction of residue " + node1.id + " with residue " + node2.id + "</title>";
16401
+ html += "<rect class='icn3d-interaction' resid1='" + resid1 + "' resid2='" + resid2 + "' x='" +(pos2.x - halfSize).toString() + "' y='" +(pos1.y - halfSize).toString() + "' width='" + rectSize + "' height='" + rectSize + "' fill='" + strokecolor + "' stroke-width='" + linestrokewidth + "' stroke='" + strokecolor + "' />";
16402
+ //html += "</g>";
16393
16403
  }
16394
16404
  else {
16395
16405
  html += "<g class='icn3d-interaction' resid1='" + resid1 + "' resid2='" + resid2 + "' >";
@@ -19353,19 +19363,19 @@ class Scap {
19353
19363
  //snp: 6M0J_E_484_K,6M0J_E_501_Y,6M0J_E_417_N
19354
19364
  let snpStr = '';
19355
19365
  let snpArray = snp.split(','); //stru_chain_resi_snp
19356
- let atomHash = {}, residArray = [];
19366
+ let atomHash = {}, snpResidArray = [];
19357
19367
  for(let i = 0, il = snpArray.length; i < il; ++i) {
19358
19368
  let idArray = snpArray[i].split('_'); //stru_chain_resi_snp
19359
19369
 
19360
19370
  let resid = idArray[0] + '_' + idArray[1] + '_' + idArray[2];
19361
19371
  atomHash = me.hashUtilsCls.unionHash(atomHash, ic.residues[resid]);
19362
- residArray.push(resid);
19372
+ snpResidArray.push(resid);
19363
19373
 
19364
19374
  snpStr += idArray[1] + '_' + idArray[2] + '_' + idArray[3];
19365
19375
  if(i != il -1) snpStr += ',';
19366
19376
  }
19367
19377
 
19368
- let selectSpec = ic.resid2specCls.residueids2spec(residArray);
19378
+ let selectSpec = ic.resid2specCls.residueids2spec(snpResidArray);
19369
19379
  let select = "select " + selectSpec;
19370
19380
 
19371
19381
  let bGetPairs = false;
@@ -19374,7 +19384,7 @@ class Scap {
19374
19384
  let result = ic.showInterCls.pickCustomSphere_base(radius, atomHash, ic.atoms, false, false, undefined, select, bGetPairs);
19375
19385
 
19376
19386
 
19377
- residArray = Object.keys(result.residues);
19387
+ let residArray = Object.keys(result.residues);
19378
19388
  ic.hAtoms = {};
19379
19389
  for(let index = 0, indexl = residArray.length; index < indexl; ++index) {
19380
19390
  let residueid = residArray[index];
@@ -19421,6 +19431,18 @@ class Scap {
19421
19431
  let bAddition = true;
19422
19432
  let hAtom1 = me.hashUtilsCls.cloneHash(ic.hAtoms);
19423
19433
 
19434
+ // the wild type is the reference
19435
+ for(let serial in hAtom1) {
19436
+ let atom = ic.atoms[serial];
19437
+ let chainid = atom.structure + '_' + atom.chain;
19438
+ let resid = chainid + '_' + atom.resi;
19439
+
19440
+ if(!ic.chainsMapping.hasOwnProperty(chainid)) {
19441
+ ic.chainsMapping[chainid] = {};
19442
+ }
19443
+ ic.chainsMapping[chainid][resid] = me.utilsCls.residueName2Abbr(atom.resn) + atom.resi;
19444
+ }
19445
+
19424
19446
  ic.hAtoms = {};
19425
19447
  ic.loadPDBCls.loadPDB(pdbData, pdbid, false, false, bAddition);
19426
19448
  let hAtom2 = me.hashUtilsCls.cloneHash(ic.hAtoms);
@@ -19433,17 +19455,31 @@ class Scap {
19433
19455
 
19434
19456
  ic.opts['color'] = 'chain';
19435
19457
  ic.setColorCls.setColorByOptions(ic.opts, ic.dAtoms);
19436
-
19437
19458
  for(let serial in hAtom2) {
19438
19459
  let atom = ic.atoms[serial];
19439
19460
  if(!atom.het) {
19440
19461
  // use the same color as the wild type
19441
- let resid = atom.structure.substr(0, 4) + '_' + atom.chain + '_' + atom.resi;
19462
+ let resid = atom.structure.substr(0, atom.structure.length - 1) + '_' + atom.chain + '_' + atom.resi;
19442
19463
 
19443
19464
  let atomWT = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[resid]);
19444
19465
  ic.atoms[serial].color = atomWT.color;
19445
19466
  ic.atomPrevColors[serial] = atomWT.color;
19446
19467
  }
19468
+
19469
+ let chainid = atom.structure + '_' + atom.chain;
19470
+ let resid = chainid + '_' + atom.resi;
19471
+ let residWT = atom.structure.substr(0, atom.structure.length - 1) + '_' + atom.chain + '_' + atom.resi;
19472
+
19473
+ if(!ic.chainsMapping.hasOwnProperty(chainid)) {
19474
+ ic.chainsMapping[chainid] = {};
19475
+ }
19476
+ ic.chainsMapping[chainid][resid] = me.utilsCls.residueName2Abbr(atom.resn) + atom.resi;
19477
+ // use the wild type as reference
19478
+
19479
+ if(snpResidArray.indexOf(residWT) != -1) {
19480
+ let atomWT = ic.firstAtomObjCls.getFirstAtomObj(ic.residues[residWT]);
19481
+ ic.chainsMapping[chainid][resid] = me.utilsCls.residueName2Abbr(atomWT.resn) + atomWT.resi;
19482
+ }
19447
19483
  }
19448
19484
 
19449
19485
  if(bPdb) {
@@ -34015,7 +34051,7 @@ class MmcifParser {
34015
34051
 
34016
34052
  // not all listed residues are considered missing, e.g., PDB ID 4OR2, only the firts four residues are considered missing
34017
34053
  if(!isNaN(resi) &&(prevMissingChain == '' ||(chain != prevMissingChain) ||(chain == prevMissingChain && resi > maxMissingResi)) ) {
34018
- chainMissingResidueArray[chainNum].push(resObject);
34054
+ ic.chainMissingResidueArray[chainNum].push(resObject);
34019
34055
 
34020
34056
  maxMissingResi = resi;
34021
34057
  prevMissingChain = chain;
@@ -37780,6 +37816,18 @@ class Diagram2d {
37780
37816
  ic.bSelectResidue = false;
37781
37817
  */
37782
37818
  });
37819
+
37820
+ $(document).on("click", "#" + ic.pre + "dl_alignerrormap .icn3d-interaction", function(e) { thisClass.icn3d;
37821
+ e.stopImmediatePropagation();
37822
+
37823
+ thisClass.clickInteraction(this);
37824
+ });
37825
+
37826
+ $(document).on("click", "#" + ic.pre + "dl_alignerrormap .icn3d-node", function(e) { thisClass.icn3d;
37827
+ e.stopImmediatePropagation();
37828
+
37829
+ thisClass.clickNode(this);
37830
+ });
37783
37831
  }
37784
37832
 
37785
37833
  clickNode(node) { let ic = this.icn3d, me = ic.icn3dui;
@@ -48257,6 +48305,12 @@ class SetDialog {
48257
48305
  html += "<div style='width:500px'>";
48258
48306
  html += 'Please specify the mutations with a comma separated mutation list. Each mutation can be specified as "[PDB ID]_[Chain ID]_[Residue Number]_[One Letter Mutatnt Residue]". E.g., the mutation of N501Y in the E chain of PDB 6M0J can be specified as "6M0J_E_501_Y". <br/><br/>';
48259
48307
  html += "<div style='display:inline-block; width:110px'>Mutations: </div>" + me.htmlCls.inputTextStr + "id='" + me.pre + "mutationids' value='6M0J_E_484_K,6M0J_E_501_Y,6M0J_E_417_N' size=50><br/><br/>";
48308
+
48309
+ html += "<b>Data Source</b>: <select id='" + me.pre + "idsource'>";
48310
+ html += "<option value='mmdbid' selected>PDB ID</option>";
48311
+ html += "<option value='afid'>AlphaFold UniProt ID</option>";
48312
+ html += "</select><br/><br/>";
48313
+
48260
48314
  html += me.htmlCls.buttonStr + "reload_mutation_3d' title='Show the mutations in 3D using the scap program'>3D with scap</button>";
48261
48315
  html += me.htmlCls.buttonStr + "reload_mutation_inter' style='margin-left:20px' title='Show the mutations in 3D and the change of interactions'>Interactions</button>";
48262
48316
  html += me.htmlCls.buttonStr + "reload_mutation_pdb' style='margin-left:20px' title='Show the mutations in 3D and export the PDB of the mutant within 10 angstrom'>PDB</button>";
@@ -48651,7 +48705,7 @@ class SetDialog {
48651
48705
 
48652
48706
  html += me.htmlCls.divStr + "dl_alignerrormap' style='background-color:white' class='" + dialogClass + "'>";
48653
48707
 
48654
- //html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3 + "</div>";
48708
+ html += me.htmlCls.divNowrapStr + "Hold Ctrl key to select multiple nodes." + me.htmlCls.space3 + "</div>";
48655
48709
 
48656
48710
  me.alignerrormapid = me.pre + 'alignerrormap';
48657
48711
  html += me.htmlCls.divNowrapStr + buttonStrTmp + me.alignerrormapid + '_svg">SVG</button>' + me.htmlCls.space2;
@@ -49520,26 +49574,29 @@ class Events {
49520
49574
  e.preventDefault();
49521
49575
  if(!me.cfg.notebook) dialog.dialog( "close" );
49522
49576
  let mutationids = $("#" + me.pre + "mutationids").val();
49523
- let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
49577
+ let idsource = $("#" + me.pre + "idsource").val();
49578
+ let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
49524
49579
  me.htmlCls.clickMenuCls.setLogCmd("3d of mutation " + mutationids, false);
49525
49580
  //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
49526
- window.open(hostUrl + '?mmdbid=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
49581
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
49527
49582
  });
49528
49583
 
49529
49584
  me.myEventCls.onIds("#" + me.pre + "reload_mutation_pdb", "click", function(e) { me.icn3d;
49530
49585
  e.preventDefault();
49531
49586
  if(!me.cfg.notebook) dialog.dialog( "close" );
49532
49587
  let mutationids = $("#" + me.pre + "mutationids").val();
49588
+ let idsource = $("#" + me.pre + "idsource").val();
49533
49589
  let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
49534
49590
  me.htmlCls.clickMenuCls.setLogCmd("pdb of mutation " + mutationids, false);
49535
49591
  //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
49536
- window.open(hostUrl + '?mmdbid=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
49592
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
49537
49593
  });
49538
49594
 
49539
49595
  me.myEventCls.onIds("#" + me.pre + "reload_mutation_inter", "click", function(e) { let ic = me.icn3d;
49540
49596
  e.preventDefault();
49541
49597
  if(!me.cfg.notebook) dialog.dialog( "close" );
49542
49598
  let mutationids = $("#" + me.pre + "mutationids").val();
49599
+ let idsource = $("#" + me.pre + "idsource").val();
49543
49600
 
49544
49601
  let mutationArray = mutationids.split(',');
49545
49602
  let residArray = [];
@@ -49561,7 +49618,7 @@ class Events {
49561
49618
  me.htmlCls.clickMenuCls.setLogCmd("interaction change of mutation " + mutationids, false);
49562
49619
  //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap interaction ' + mutationids + '; select ' + selectSpec + ' | name test; line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5; adjust dialog dl_linegraph; select displayed set', '_blank');
49563
49620
  //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
49564
- window.open(hostUrl + '?mmdbid=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
49621
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
49565
49622
  });
49566
49623
 
49567
49624
  // },
@@ -53067,17 +53124,10 @@ class ContactMap {
53067
53124
  let bContactMap = true;
53068
53125
 
53069
53126
  if(bAfMap) { // cleaned the code by using "use" in SVG, but didn't improve rendering
53070
- let factor = 1;
53071
- let r = 3 * factor;
53072
- let rectSize = 2 * r;
53073
53127
 
53074
53128
  ic.hex2id = {};
53075
53129
  let threshold = 29.0 / max;
53076
53130
  ic.hex2skip = {}; // do not display any error larger than 29 angstrom
53077
-
53078
- html += "<defs>";
53079
-
53080
- let linestrokewidth = 1;
53081
53131
  let nRef = 1000;
53082
53132
  for(let i = 0; i < nRef; ++i) {
53083
53133
  let ratio = 1.0 * i / nRef;
@@ -53087,7 +53137,6 @@ class ContactMap {
53087
53137
  let gHex = (g.length == 1) ? '0' + g : g;
53088
53138
  let bHex = rHex;
53089
53139
  let color = rHex + gHex + bHex;
53090
- let strokecolor = "#" + color;
53091
53140
 
53092
53141
  let idRect = me.pre + "afmap_" + i;
53093
53142
 
@@ -53097,11 +53146,11 @@ class ContactMap {
53097
53146
  }
53098
53147
 
53099
53148
  //html += "<g id='" + id + "'>";
53100
- html += "<rect id='" + idRect + "' x='0' y='0' width='" + rectSize + "' height='" + rectSize + "' fill='"
53101
- + strokecolor + "' stroke-width='" + linestrokewidth + "' stroke='" + strokecolor + "' />";
53149
+ // html += "<rect id='" + idRect + "' x='0' y='0' width='" + rectSize + "' height='" + rectSize + "' fill='"
53150
+ // + strokecolor + "' stroke-width='" + linestrokewidth + "' stroke='" + strokecolor + "' />";
53102
53151
  //html += "</g>"
53103
53152
  }
53104
- html += "</defs>";
53153
+ // html += "</defs>";
53105
53154
  }
53106
53155
 
53107
53156
  html += ic.lineGraphCls.drawScatterplot_base(nodeArray1, nodeArray2, linkArray, name2node, 0, bContactMap, undefined, undefined, bAfMap);
@@ -55677,7 +55726,7 @@ class iCn3DUI {
55677
55726
  //even when multiple iCn3D viewers are shown together.
55678
55727
  this.pre = this.cfg.divid + "_";
55679
55728
 
55680
- this.REVISION = '3.8.1';
55729
+ this.REVISION = '3.8.2';
55681
55730
 
55682
55731
  // In nodejs, iCn3D defines "window = {navigator: {}}"
55683
55732
  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.8.2",
3
+ "version": "3.8.3",
4
4
  "main": "icn3d.js",
5
5
  "description": "iCn3D Structure Viewer",
6
6
  "repository": {