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 +32 -18
- package/icn3d.min.js +3 -3
- package/icn3d.module.js +32 -18
- package/package.json +1 -1
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>
|
|
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
|
-
|
|
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 += ' </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
|
-
|
|
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
|
-
|
|
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.
|
|
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;
|