icn3d 3.51.1 → 3.51.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.
package/icn3d.js CHANGED
@@ -62303,10 +62303,12 @@ class SetDialog {
62303
62303
  html += "</select></div><br>";
62304
62304
 
62305
62305
  // some issues in aligning 4orz_C and 5esv_H due to insertion code
62306
- //html += "<div><b>2a</b>. <div style='display:inline-block; width:170px'>Align to First Chain:</div> " + me.htmlCls.buttonStr + "applyRealignByStructMsa_tmalign'>Realign with TM-align</button>" + me.htmlCls.buttonStr + "applyRealignByStructMsa' style='margin-left:30px'>Realign with VAST</button></div><br>";
62306
+ // html += "<div><b>2</b>. <div style='display:inline-block; width:170px'>Align to First Chain:</div> " + me.htmlCls.buttonStr + "applyRealignByStructMsa_tmalign'>Realign with TM-align</button>" + me.htmlCls.buttonStr + "applyRealignByStructMsa' style='margin-left:30px'>Realign with VAST</button></div><br>";
62307
+ html += "<div><b>2</b>. " + me.htmlCls.buttonStr + "applyRealignByStructMsa_tmalign'>Realign with TM-align</button>" + me.htmlCls.buttonStr + "applyRealignByStructMsa' style='margin-left:30px'>Realign with VAST</button></div><br>";
62307
62308
 
62308
- //html += "<div>or <b>2b</b>. <div style='display:inline-block; width:155px'>Align All Chains Pairwise:</div> " + me.htmlCls.buttonStr + "applyRealignByStruct_tmalign'>Realign with TM-align</button>" + me.htmlCls.buttonStr + "applyRealignByStruct' style='margin-left:30px'>Realign with VAST</button></div><br>";
62309
- html += "<div><b>2</b>. " + me.htmlCls.buttonStr + "applyRealignByStruct_tmalign'>Realign with TM-align</button>" + me.htmlCls.buttonStr + "applyRealignByStruct' style='margin-left:30px'>Realign with VAST</button></div><br>";
62309
+ // html += "<div>or <b>2b</b>. <div style='display:inline-block; width:155px'>Align All Chains Pairwise:</div> " + me.htmlCls.buttonStr + "applyRealignByStruct_tmalign'>Realign with TM-align</button>" + me.htmlCls.buttonStr + "applyRealignByStruct' style='margin-left:30px'>Realign with VAST</button></div><br>";
62310
+
62311
+ // html += "<div><b>2</b>. " + me.htmlCls.buttonStr + "applyRealignByStruct_tmalign'>Realign with TM-align</button>" + me.htmlCls.buttonStr + "applyRealignByStruct' style='margin-left:30px'>Realign with VAST</button></div><br>";
62310
62312
 
62311
62313
  html += "</div>";
62312
62314
 
@@ -98792,8 +98794,9 @@ class ShowSeq {
98792
98794
  // let resi =(i >= ic.matchedPos[chnid] && i - ic.matchedPos[chnid] < ic.chainsSeq[chnid].length) ? ic.chainsSeq[chnid][i - ic.matchedPos[chnid]].resi : ic.baseResi[chnid] + 1 + i;
98793
98795
  let resi = ic.ParserUtilsCls.getResi(chnid, i);
98794
98796
  let residueid = chnid + '_' + resi;
98797
+ let atom = ic.firstAtomObjCls.getFirstCalphaAtomObj(ic.residues[residueid]);
98795
98798
 
98796
- if( ic.residues.hasOwnProperty(residueid) ) {
98799
+ if( ic.residues.hasOwnProperty(residueid) && !atom.het ) {
98797
98800
  if(ic.secondaries[residueid] == 'H') {
98798
98801
  if(i % 2 == 0) {
98799
98802
  html += '<span class="icn3d-helix">';
@@ -98804,7 +98807,6 @@ class ShowSeq {
98804
98807
  html += '&nbsp;</span>';
98805
98808
  }
98806
98809
  else if(ic.secondaries[residueid] == 'E') {
98807
- let atom = ic.firstAtomObjCls.getFirstCalphaAtomObj(ic.residues[residueid]);
98808
98810
  if(atom.ssend) {
98809
98811
  if(ic.sheetcolor == 'green') {
98810
98812
  html += '<span class="icn3d-sheet2">';
@@ -100985,6 +100987,8 @@ class GetGraph {
100985
100987
  "#" + ic.hColor.getHexString().toUpperCase();
100986
100988
  let pos = node.id.indexOf('.');
100987
100989
  let nodeName =(pos == -1) ? node.id : node.id.substr(0, pos);
100990
+ if(nodeName.length > 4) nodeName = nodeName.substr(0, 1) + '..' + nodeName.substr(nodeName.length - 2);
100991
+
100988
100992
  let adjustx = 0, adjusty =(setName == 'a') ? -7 : 10;
100989
100993
  if(i % 2 == 1) adjusty =(setName == 'a') ? adjusty - 7 : adjusty + 7;
100990
100994
 
@@ -103601,10 +103605,6 @@ class AlignParser {
103601
103605
  //var ids_str =(alignArray.length === 2? 'uids=' : 'ids=') + align;
103602
103606
  let ids_str = 'ids=' + align;
103603
103607
 
103604
- // let url2 = me.htmlCls.baseUrl + 'vastplus/vastplus.cgi?v=2&cmd=c&b=1&s=1&w3d&' + ids_str;
103605
- // let url2 = me.htmlCls.baseUrl + 'vastplus/vastplus.cgi?v=2&cmd=c&b=1&s=1&w3d&' + ids_str;
103606
- // let url1 = me.htmlCls.baseUrl + 'vastplus/vastplus.cgi?v=2&cmd=c1&b=1&s=1&d=1&' + ids_str;
103607
-
103608
103608
  // combined url1 and url2
103609
103609
  let url2 = me.htmlCls.baseUrl + 'vastplus/vastplus.cgi?v=3&cmd=c&b=1&s=1&w3d&' + ids_str;
103610
103610
 
@@ -114644,7 +114644,8 @@ class SetSeqAlign {
114644
114644
  if(ic.alnChainsSeq[chainid1]) {
114645
114645
  for(let j = 0, jl = ic.alnChainsSeq[chainid1].length; j < jl; ++j) {
114646
114646
  //add gap before the mapping region
114647
- if(parseInt(ic.alnChainsSeq[chainid1][j].resi) == parseInt(resi_t)) {
114647
+ //if(parseInt(ic.alnChainsSeq[chainid1][j].resi) == parseInt(resi_t)) {
114648
+ if(ic.alnChainsSeq[chainid1][j].resi == resi_t) {
114648
114649
  pos_t = j;
114649
114650
  break;
114650
114651
  }
@@ -114772,10 +114773,17 @@ class SetSeqAlign {
114772
114773
 
114773
114774
  let nGapInTemplate = 0; // number of gaps inserted into the template sequence
114774
114775
  let startPosInTemplate = 0; // position in the template sequence to start the mapping
114776
+
114777
+ // need to improve when tmalign with residue number with postfix such as 52A in 4ORZ_C,5ESV_H
114778
+ // start and end should be positions, not original residue numbers.
114779
+ if(bRealign && me.cfg.aligntool == 'tmalign') {
114780
+ start_t = ic.ParserUtilsCls.getResi(chainid1, start_t);
114781
+ end_t = ic.ParserUtilsCls.getResi(chainid1, end_t);
114782
+ }
114775
114783
 
114776
114784
  for(let i = 0, il = ic.qt_start_end[chainIndex].length; i < il; ++i) {
114777
114785
  let start1, start2, end1, end2, resiStart1, start1Pos;
114778
-
114786
+
114779
114787
  if(bRealign && me.cfg.aligntool == 'tmalign') { // real residue numbers are stored
114780
114788
  start1 = parseInt(ic.qt_start_end[chainIndex][i].t_start);
114781
114789
  start2 = parseInt(ic.qt_start_end[chainIndex][i].q_start);
@@ -114808,13 +114816,13 @@ class SetSeqAlign {
114808
114816
  if(i == 0) {
114809
114817
  startPosInTemplate = start1Pos;
114810
114818
 
114811
- //result = this.getTemplatePosFromOriResi(chainid1, start_t, start1, bRealign);
114812
- result = this.getTemplatePosFromOriResi(chainid1, start_t, start1Pos, bRealign);
114819
+ result = this.getTemplatePosFromOriResi(chainid1, start_t, start1, bRealign);
114820
+ //result = this.getTemplatePosFromOriResi(chainid1, start_t, start1Pos, bRealign);
114813
114821
  pos1 = result.pos1;
114814
114822
  pos2 = result.pos2;
114815
114823
 
114816
- //if(start1 > start_t) {
114817
- if(start1Pos > start_t) {
114824
+ if(start1 > start_t) {
114825
+ //if(start1Pos > start_t) {
114818
114826
  for(let j = 0, jl = pos2 - pos1; j < jl; ++j) {
114819
114827
  ic.alnChainsSeq[chainid2].push(gapResObject2);
114820
114828
  }
@@ -114828,6 +114836,9 @@ class SetSeqAlign {
114828
114836
  let notAlnLen1 = pos2 - (pos1 + 1);
114829
114837
  let notAlnLen2 = start2 - (prevIndex2 + 1);
114830
114838
 
114839
+ notAlnLen1 = (notAlnLen1 < 0) ? 0 : notAlnLen1;
114840
+ notAlnLen2 = (notAlnLen2 < 0) ? 0 : notAlnLen2;
114841
+
114831
114842
  // insert non-aligned residues in query seq
114832
114843
  this.insertNotAlignRes(chainid2, prevIndex2+1, notAlnLen2, bRealign);
114833
114844
  if(notAlnLen1 >= notAlnLen2) {
@@ -114861,6 +114872,7 @@ class SetSeqAlign {
114861
114872
  else {
114862
114873
  let resi1 = (bRealign && me.cfg.aligntool == 'tmalign') ? start1 + k : ic.ParserUtilsCls.getResi(chainid1, start1 + k);
114863
114874
  let resi2 = (bRealign && me.cfg.aligntool == 'tmalign') ? start2 + k : ic.ParserUtilsCls.getResi(chainid2, start2 + k);
114875
+
114864
114876
  let resn1 = this.getResnFromResi(chainid1, resi1); //this.getResn(chainid1, start1 + k);
114865
114877
  let resn2 = this.getResnFromResi(chainid2, resi2); //this.getResn(chainid2, start2 + k);
114866
114878
 
@@ -115654,7 +115666,8 @@ class LoadPDB {
115654
115666
  // bModifyResi = true;
115655
115667
  // }
115656
115668
 
115657
- if(bOpm && resn === 'DUM') {
115669
+ // if(bOpm && resn === 'DUM') {
115670
+ if(resn === 'DUM') {
115658
115671
  elem = atom;
115659
115672
  chain = 'MEM';
115660
115673
  resi = 1;
@@ -128659,6 +128672,7 @@ class Diagram2d {
128659
128672
  // get the residues in the selection
128660
128673
  let ncbiresid = data;
128661
128674
  let resid = ic.ncbi2resid[ncbiresid];
128675
+ let resi = resid.substr(resid.lastIndexOf('_') + 1);
128662
128676
 
128663
128677
  if(ic.ig2ddgm_chainid && ic.resid2refnum && ic.resid2refnum[resid]) {
128664
128678
  let refnumLabel = ic.resid2refnum[resid];
@@ -128668,7 +128682,7 @@ class Diagram2d {
128668
128682
  thisClass.resetAllNodes('ig2ddgmSvg');
128669
128683
 
128670
128684
  // highlight the residue
128671
- $("#ig2ddgmSvg .c" + refnumStr).css({'font-size': '20px', 'font-weight': 'bold'});
128685
+ $("#ig2ddgmSvg .c" + refnumStr + ":contains('" + resi + "')").css({'font-size': '20px', 'font-weight': 'bold'});
128672
128686
  }
128673
128687
  });
128674
128688
  }
@@ -135861,7 +135875,7 @@ class iCn3DUI {
135861
135875
  //even when multiple iCn3D viewers are shown together.
135862
135876
  this.pre = this.cfg.divid + "_";
135863
135877
 
135864
- this.REVISION = '3.51.0';
135878
+ this.REVISION = '3.51.2';
135865
135879
 
135866
135880
  // In nodejs, iCn3D defines "window = {navigator: {}}", and added window = {navigator: {}, "__THREE__":"177"}
135867
135881
  this.bNode = (Object.keys(window).length < 3) ? true : false;