icn3d 3.25.10 → 3.25.12
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 +456 -158
- package/icn3d.min.js +3 -3
- package/icn3d.module.js +456 -158
- package/package.json +1 -1
package/icn3d.js
CHANGED
|
@@ -11780,7 +11780,7 @@ class Events {
|
|
|
11780
11780
|
async searchSeq() { let me = this.icn3dui, ic = me.icn3d, thisClass = this;
|
|
11781
11781
|
let select = $("#" + me.pre + "search_seq").val();
|
|
11782
11782
|
if(isNaN(select) && select.indexOf('$') == -1 && select.indexOf('.') == -1 && select.indexOf(':') == -1
|
|
11783
|
-
&& select.indexOf('
|
|
11783
|
+
&& select.indexOf('@') == -1) {
|
|
11784
11784
|
select = ':' + select;
|
|
11785
11785
|
}
|
|
11786
11786
|
let commandname = select.replace(/\s+/g, '_');
|
|
@@ -14216,6 +14216,22 @@ class Events {
|
|
|
14216
14216
|
thisClass.setLogCmd('define coil sets | chain ' + chainid, true);
|
|
14217
14217
|
});
|
|
14218
14218
|
|
|
14219
|
+
$(document).on("click", ".icn3d-igstrandsets", function(e) { let ic = me.icn3d;
|
|
14220
|
+
e.stopImmediatePropagation();
|
|
14221
|
+
//e.preventDefault();
|
|
14222
|
+
let chainid = $(this).attr('chainid');
|
|
14223
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igstrand');
|
|
14224
|
+
thisClass.setLogCmd('define igstrand sets | chain ' + chainid, true);
|
|
14225
|
+
});
|
|
14226
|
+
|
|
14227
|
+
$(document).on("click", ".icn3d-igloopsets", function(e) { let ic = me.icn3d;
|
|
14228
|
+
e.stopImmediatePropagation();
|
|
14229
|
+
//e.preventDefault();
|
|
14230
|
+
let chainid = $(this).attr('chainid');
|
|
14231
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igloop');
|
|
14232
|
+
thisClass.setLogCmd('define igloop sets | chain ' + chainid, true);
|
|
14233
|
+
});
|
|
14234
|
+
|
|
14219
14235
|
me.myEventCls.onIds("#" + me.pre + "deletesets", "click", function(e) { let ic = me.icn3d;
|
|
14220
14236
|
ic.definedSetsCls.deleteSelectedSets();
|
|
14221
14237
|
thisClass.setLogCmd("delete selected sets", true);
|
|
@@ -32289,7 +32305,7 @@ class Alternate {
|
|
|
32289
32305
|
ic.impostorCls.clearImpostors();
|
|
32290
32306
|
|
|
32291
32307
|
// show membranes
|
|
32292
|
-
if(ic.bOpm) {
|
|
32308
|
+
if(ic.bOpm && !me.cfg.chainalign) {
|
|
32293
32309
|
//if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
|
|
32294
32310
|
|
|
32295
32311
|
let html = me.utilsCls.getMemDesc();
|
|
@@ -34687,7 +34703,7 @@ class SetColor {
|
|
|
34687
34703
|
// color = me.parasCls.thr(me.htmlCls.GREYB);
|
|
34688
34704
|
// }
|
|
34689
34705
|
// else {
|
|
34690
|
-
let refnumStr =
|
|
34706
|
+
let refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
34691
34707
|
let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
|
|
34692
34708
|
color = ic.showSeqCls.getRefnumColor(currStrand);
|
|
34693
34709
|
|
|
@@ -34723,7 +34739,7 @@ class SetColor {
|
|
|
34723
34739
|
color = me.parasCls.thr(me.htmlCls.GREYB);
|
|
34724
34740
|
}
|
|
34725
34741
|
else {
|
|
34726
|
-
let refnumStr =
|
|
34742
|
+
let refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
34727
34743
|
let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
|
|
34728
34744
|
color = ic.showSeqCls.getProtodomainColor(currStrand);
|
|
34729
34745
|
|
|
@@ -39851,7 +39867,7 @@ class AddTrack {
|
|
|
39851
39867
|
++helixCnt;
|
|
39852
39868
|
|
|
39853
39869
|
if(Object.keys(selectedResidues).length > 0) {
|
|
39854
|
-
setName = currName + 'H' + helixCnt + ')';
|
|
39870
|
+
setName = currName + 'H' + helixCnt.toString().padStart(2, '0') + ')';
|
|
39855
39871
|
if(type == 'coil') {
|
|
39856
39872
|
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
39857
39873
|
if(!bUnion) bUnion = true;
|
|
@@ -39862,13 +39878,13 @@ class AddTrack {
|
|
|
39862
39878
|
|
|
39863
39879
|
//zero =(index < 10) ? '0' : '';
|
|
39864
39880
|
//currName = chainid + zero + index + '_H' + helixCnt;
|
|
39865
|
-
currName = chainid + '_H' + helixCnt;
|
|
39881
|
+
currName = chainid + '_H' + helixCnt.toString().padStart(2, '0');
|
|
39866
39882
|
selectedResidues[residueid] = 1;
|
|
39867
39883
|
|
|
39868
39884
|
if(atom.ssend) {
|
|
39869
39885
|
//zero =(index < 9) ? '0' : '';
|
|
39870
39886
|
//prevName = chainid + zero +(index+1) + '_L(H' + helixCnt;
|
|
39871
|
-
prevName = chainid + '_C(H' + helixCnt;
|
|
39887
|
+
prevName = chainid + '_C(H' + helixCnt.toString().padStart(2, '0');
|
|
39872
39888
|
if(type == 'helix') {
|
|
39873
39889
|
ic.selectionCls.selectResidueList(selectedResidues, currName, currName, bUnion, bUpdateHighlight);
|
|
39874
39890
|
if(!bUnion) bUnion = true;
|
|
@@ -39881,7 +39897,7 @@ class AddTrack {
|
|
|
39881
39897
|
++sheetCnt;
|
|
39882
39898
|
|
|
39883
39899
|
if(Object.keys(selectedResidues).length > 0) {
|
|
39884
|
-
setName = currName + 'S' + sheetCnt + ')';
|
|
39900
|
+
setName = currName + 'S' + sheetCnt.toString().padStart(2, '0') + ')';
|
|
39885
39901
|
if(type == 'coil') {
|
|
39886
39902
|
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
39887
39903
|
if(!bUnion) bUnion = true;
|
|
@@ -39892,13 +39908,13 @@ class AddTrack {
|
|
|
39892
39908
|
|
|
39893
39909
|
//zero =(index < 10) ? '0' : '';
|
|
39894
39910
|
//currName = chainid + zero + index + '_S' + sheetCnt;
|
|
39895
|
-
currName = chainid + '_S' + sheetCnt;
|
|
39911
|
+
currName = chainid + '_S' + sheetCnt.toString().padStart(2, '0');
|
|
39896
39912
|
selectedResidues[residueid] = 1;
|
|
39897
39913
|
|
|
39898
39914
|
if(atom.ssend) {
|
|
39899
39915
|
//zero =(index < 9) ? '0' : '';
|
|
39900
39916
|
//prevName = chainid + zero +(index+1) + '_L(S' + sheetCnt;
|
|
39901
|
-
prevName = chainid + '_C(S' + sheetCnt;
|
|
39917
|
+
prevName = chainid + '_C(S' + sheetCnt.toString().padStart(2, '0');
|
|
39902
39918
|
if(type == 'sheet') {
|
|
39903
39919
|
ic.selectionCls.selectResidueList(selectedResidues, currName, currName, bUnion, bUpdateHighlight);
|
|
39904
39920
|
if(!bUnion) bUnion = true;
|
|
@@ -39921,6 +39937,90 @@ class AddTrack {
|
|
|
39921
39937
|
}
|
|
39922
39938
|
}
|
|
39923
39939
|
|
|
39940
|
+
// type: igstrand, igloop
|
|
39941
|
+
defineIgstrand(chainid, type) { let ic = this.icn3d, me = ic.icn3dui;
|
|
39942
|
+
if(!$('#' + ic.pre + 'dl_definedsets').hasClass('ui-dialog-content') || !$('#' + ic.pre + 'dl_definedsets').dialog( 'isOpen' )) {
|
|
39943
|
+
me.htmlCls.dialogCls.openDlg('dl_definedsets', 'Select sets');
|
|
39944
|
+
$("#" + ic.pre + "atomsCustom").resizable();
|
|
39945
|
+
}
|
|
39946
|
+
|
|
39947
|
+
let selectedResidues = {};
|
|
39948
|
+
let bUnion = false, bUpdateHighlight = true;
|
|
39949
|
+
|
|
39950
|
+
let strandCnt = 0, loopCnt = 0;
|
|
39951
|
+
let setName, currStrand, prevStrand, prevStrandReal, currType, prevType;
|
|
39952
|
+
|
|
39953
|
+
// clear selection
|
|
39954
|
+
ic.hAtoms = {};
|
|
39955
|
+
|
|
39956
|
+
let bStart = false;
|
|
39957
|
+
|
|
39958
|
+
for(let i = 0, il = ic.chainsSeq[chainid].length; i < il; ++i) {
|
|
39959
|
+
let currResi = ic.chainsSeq[chainid][i].resi;
|
|
39960
|
+
let resid = chainid + '_' + currResi;
|
|
39961
|
+
|
|
39962
|
+
if(!ic.residues.hasOwnProperty(resid) ) continue;
|
|
39963
|
+
|
|
39964
|
+
let refnumLabel, refnumStr;
|
|
39965
|
+
refnumLabel = ic.resid2refnum[resid];
|
|
39966
|
+
if(!refnumLabel) continue;
|
|
39967
|
+
|
|
39968
|
+
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
39969
|
+
currStrand = refnumLabel.replace(refnumStr, '');
|
|
39970
|
+
|
|
39971
|
+
if(ic.residIgLoop.hasOwnProperty(resid)) {
|
|
39972
|
+
currType = 'igloop';
|
|
39973
|
+
}
|
|
39974
|
+
else {
|
|
39975
|
+
currType = 'igstrand';
|
|
39976
|
+
}
|
|
39977
|
+
|
|
39978
|
+
if(bStart && currType != prevType && Object.keys(selectedResidues).length > 0) {
|
|
39979
|
+
if(prevType == 'igstrand') {
|
|
39980
|
+
++strandCnt;
|
|
39981
|
+
setName = 'Strand-' + prevStrand + '-' + chainid + '-' + strandCnt.toString().padStart(3, '0');
|
|
39982
|
+
setName = setName.replace(/'/g, '`');
|
|
39983
|
+
if(type == 'igstrand') {
|
|
39984
|
+
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
39985
|
+
if(!bUnion) bUnion = true;
|
|
39986
|
+
}
|
|
39987
|
+
prevStrandReal = prevStrand;
|
|
39988
|
+
}
|
|
39989
|
+
else if(prevType == 'igloop') {
|
|
39990
|
+
++loopCnt;
|
|
39991
|
+
setName = 'Loop-' + prevStrandReal + '_' + currStrand + '-' + chainid + '-' + loopCnt.toString().padStart(3, '0');
|
|
39992
|
+
setName = setName.replace(/'/g, '`');
|
|
39993
|
+
if(type == 'igloop') {
|
|
39994
|
+
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
39995
|
+
if(!bUnion) bUnion = true;
|
|
39996
|
+
}
|
|
39997
|
+
}
|
|
39998
|
+
|
|
39999
|
+
selectedResidues = {};
|
|
40000
|
+
}
|
|
40001
|
+
|
|
40002
|
+
selectedResidues[resid] = 1;
|
|
40003
|
+
|
|
40004
|
+
prevStrand = currStrand;
|
|
40005
|
+
prevType = currType;
|
|
40006
|
+
|
|
40007
|
+
bStart = true;
|
|
40008
|
+
} // for loop
|
|
40009
|
+
|
|
40010
|
+
if(prevType == 'igstrand') {
|
|
40011
|
+
++strandCnt;
|
|
40012
|
+
setName = 'Strand-' + prevStrand + '-' + chainid + '-' + strandCnt.toString().padStart(3, '0');
|
|
40013
|
+
setName = setName.replace(/'/g, '`');
|
|
40014
|
+
if(type == 'igstrand') ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40015
|
+
}
|
|
40016
|
+
else if(prevType == 'igloop') {
|
|
40017
|
+
++loopCnt;
|
|
40018
|
+
setName = 'Loop-' + prevStrandReal + '_' + currStrand + '-' + chainid + '-' + loopCnt.toString().padStart(3, '0');
|
|
40019
|
+
setName = setName.replace(/'/g, '`');
|
|
40020
|
+
if(type == 'igloop') ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40021
|
+
}
|
|
40022
|
+
}
|
|
40023
|
+
|
|
39924
40024
|
simplifyText(text) { let ic = this.icn3d; ic.icn3dui;
|
|
39925
40025
|
let out = ''; // 1-based text positions
|
|
39926
40026
|
let bFoundText = false;
|
|
@@ -40930,6 +41030,11 @@ class ShowAnno {
|
|
|
40930
41030
|
chainHtml += this.addButton(chnid, "icn3d-helixsets", "Helix Sets", "Define sets for each helix in this chain and add them to the menu of \"Defined Sets\"", 60, buttonStyle) + " "
|
|
40931
41031
|
+ this.addButton(chnid, "icn3d-sheetsets", "Sheet Sets", "Define sets for each sheet in this chain and add them to the menu of \"Defined Sets\"", 60, buttonStyle) + " "
|
|
40932
41032
|
+ this.addButton(chnid, "icn3d-coilsets", "Coil Sets", "Define sets for each coil in this chain and add them to the menu of \"Defined Sets\"", 60, buttonStyle);
|
|
41033
|
+
|
|
41034
|
+
if(ic.bShowRefnum && ic.chainid2refpdbname.hasOwnProperty(chnid)) {
|
|
41035
|
+
chainHtml += " " + this.addButton(chnid, "icn3d-igstrandsets", "Ig Strand Sets", "Define sets for each Ig strand in this chain and add them to the menu of \"Defined Sets\"", 80, buttonStyle) + " "
|
|
41036
|
+
+ this.addButton(chnid, "icn3d-igloopsets", "Ig Loop Sets", "Define sets for each Ig loop in this chain and add them to the menu of \"Defined Sets\"", 80, buttonStyle);
|
|
41037
|
+
}
|
|
40933
41038
|
$("#" + ic.pre + "dl_annotations").append(chainHtml);
|
|
40934
41039
|
//let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'domain', 'site', 'ptm', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
|
|
40935
41040
|
let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'site', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'custom', 'interaction'];
|
|
@@ -41362,6 +41467,10 @@ class ShowAnno {
|
|
|
41362
41467
|
}
|
|
41363
41468
|
}
|
|
41364
41469
|
getColorhexFromBlosum62(resA, resB) { let ic = this.icn3d, me = ic.icn3dui;
|
|
41470
|
+
let color = '333333';
|
|
41471
|
+
|
|
41472
|
+
if(!resA || !resB) return color;
|
|
41473
|
+
|
|
41365
41474
|
resA = resA.toUpperCase();
|
|
41366
41475
|
resB = resB.toUpperCase();
|
|
41367
41476
|
|
|
@@ -41371,7 +41480,7 @@ class ShowAnno {
|
|
|
41371
41480
|
if(matrixValue === undefined) return '333333';
|
|
41372
41481
|
// range and color: blue for -4 ~ 0, red for 0 ~ 11
|
|
41373
41482
|
// max value 221 to avoid white
|
|
41374
|
-
|
|
41483
|
+
|
|
41375
41484
|
if(matrixValue > 0) {
|
|
41376
41485
|
let c = 221 - parseInt(matrixValue / 11.0 * 221);
|
|
41377
41486
|
let cStr =(c < 10) ? '0' + c.toString(16) : c.toString(16);
|
|
@@ -41819,7 +41928,7 @@ class ShowSeq {
|
|
|
41819
41928
|
html += '</div>';
|
|
41820
41929
|
html3 += '</div></div>';
|
|
41821
41930
|
}
|
|
41822
|
-
else if(ic.bShowRefnum && ic.
|
|
41931
|
+
else if(ic.bShowRefnum && ic.chainid2refpdbname.hasOwnProperty(chnid)) {
|
|
41823
41932
|
let result = this.showRefNum(giSeq, chnid);
|
|
41824
41933
|
html += result.html;
|
|
41825
41934
|
html3 += result.html3;
|
|
@@ -41862,10 +41971,10 @@ class ShowSeq {
|
|
|
41862
41971
|
let html = '', html3 = '';
|
|
41863
41972
|
|
|
41864
41973
|
let chainList = '';
|
|
41865
|
-
if(!ic.
|
|
41974
|
+
if(!ic.chainid2refpdbname[chnid]) return {html: html, html3: html3};
|
|
41866
41975
|
|
|
41867
|
-
for(let i = 0, il = ic.
|
|
41868
|
-
chainList += ic.
|
|
41976
|
+
for(let i = 0, il = ic.chainid2refpdbname[chnid].length; i < il; ++i) {
|
|
41977
|
+
chainList += ic.chainid2refpdbname[chnid][i] + " ";
|
|
41869
41978
|
}
|
|
41870
41979
|
|
|
41871
41980
|
let refStruTitle = (chainList) ? "based on " + chainList : "";
|
|
@@ -41926,13 +42035,23 @@ class ShowSeq {
|
|
|
41926
42035
|
|
|
41927
42036
|
// sometimes one chain may have several Ig domains,set an index for each IgDomain
|
|
41928
42037
|
let index = 1, bStart = false;
|
|
41929
|
-
|
|
42038
|
+
|
|
42039
|
+
if(!bCustom && !kabat_or_imgt) {
|
|
42040
|
+
// reset ic.residIgLoop for the current selection, which could be the second round of ref num assignment
|
|
42041
|
+
let residHash = ic.firstAtomObjCls.getResiduesFromAtoms(ic.hAtoms);
|
|
42042
|
+
for(let resid in residHash) {
|
|
42043
|
+
// not in loop any more if you assign ref numbers multiple times
|
|
42044
|
+
delete ic.residIgLoop[resid];
|
|
42045
|
+
}
|
|
42046
|
+
}
|
|
42047
|
+
|
|
41930
42048
|
// 1. get the range of each strand excluding loops
|
|
41931
42049
|
let strandArray = [], strandHash = {}, strandCnt = 0, resCnt = 0, resCntBfAnchor = 0, resCntAtAnchor = 0;
|
|
41932
42050
|
if(!bCustom && !kabat_or_imgt) {
|
|
41933
42051
|
for(let i = 0, il = giSeq.length; i < il; ++i, ++resCnt, ++resCntBfAnchor, ++resCntAtAnchor) {
|
|
41934
42052
|
let currResi = ic.ParserUtilsCls.getResi(chnid, i);
|
|
41935
42053
|
let residueid = chnid + '_' + currResi;
|
|
42054
|
+
|
|
41936
42055
|
refnumLabel = ic.resid2refnum[residueid];
|
|
41937
42056
|
|
|
41938
42057
|
let firstChar = (refnumLabel) ? refnumLabel.substr(0,1) : ' ';
|
|
@@ -41946,7 +42065,7 @@ class ShowSeq {
|
|
|
41946
42065
|
}
|
|
41947
42066
|
|
|
41948
42067
|
if(refnumLabel) {
|
|
41949
|
-
refnumStr_ori =
|
|
42068
|
+
refnumStr_ori = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
41950
42069
|
currStrand = refnumLabel.replace(new RegExp(refnumStr_ori,'g'), '');
|
|
41951
42070
|
refnumStr_ori.substr(0, 1);
|
|
41952
42071
|
|
|
@@ -42029,7 +42148,9 @@ class ShowSeq {
|
|
|
42029
42148
|
for(let il = strandArray.length, i = il - 1; i >= 0; --i) {
|
|
42030
42149
|
if(strandArray[i].endRefnum - strandArray[i].startRefnum + 1 < 3) { // remove the strand
|
|
42031
42150
|
if(i != il - 1) { // modify
|
|
42032
|
-
strandArray[i + 1].loopResCnt += strandArray[i].loopResCnt + strandArray[i].endRefnum - strandArray[i].startRefnum + 1;
|
|
42151
|
+
// strandArray[i + 1].loopResCnt += strandArray[i].loopResCnt + strandArray[i].endRefnum - strandArray[i].startRefnum + 1;
|
|
42152
|
+
|
|
42153
|
+
strandArray[i + 1].loopResCnt += strandArray[i].loopResCnt + parseInt(strandArray[i].endResi) - parseInt(strandArray[i].startResi) + 1;
|
|
42033
42154
|
}
|
|
42034
42155
|
|
|
42035
42156
|
strandArray.splice(i, 1);
|
|
@@ -42052,7 +42173,7 @@ class ShowSeq {
|
|
|
42052
42173
|
currStrand = strandArray[strandCnt].strand;
|
|
42053
42174
|
|
|
42054
42175
|
if(refnumLabel) {
|
|
42055
|
-
refnumStr =
|
|
42176
|
+
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
42056
42177
|
currRefnum = parseInt(refnumStr);
|
|
42057
42178
|
refnumLabelNoPostfix = currStrand + currRefnum;
|
|
42058
42179
|
|
|
@@ -42134,7 +42255,7 @@ class ShowSeq {
|
|
|
42134
42255
|
}
|
|
42135
42256
|
else if(parseInt(currResi) >= parseInt(strandArray[strandCnt].startResi) && parseInt(currResi) <= parseInt(strandArray[strandCnt].endResi)) {
|
|
42136
42257
|
// not in loop any more if you assign ref numbers multiple times
|
|
42137
|
-
delete ic.residIgLoop[residueid];
|
|
42258
|
+
//delete ic.residIgLoop[residueid];
|
|
42138
42259
|
|
|
42139
42260
|
bBeforeAstrand = false;
|
|
42140
42261
|
|
|
@@ -42224,7 +42345,7 @@ class ShowSeq {
|
|
|
42224
42345
|
let bHidelabel = false;
|
|
42225
42346
|
|
|
42226
42347
|
if(refnumLabel) {
|
|
42227
|
-
refnumStr_ori =
|
|
42348
|
+
refnumStr_ori = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
42228
42349
|
currStrand = refnumLabel.replace(new RegExp(refnumStr_ori,'g'), '');
|
|
42229
42350
|
currStrand_ori = currStrand;
|
|
42230
42351
|
|
|
@@ -51858,7 +51979,7 @@ class ParserUtils {
|
|
|
51858
51979
|
if(rmsd) {
|
|
51859
51980
|
me.htmlCls.clickMenuCls.setLogCmd("realignment RMSD: " + rmsd.toPrecision(4), false);
|
|
51860
51981
|
let html = "<br><b>Realignment RMSD</b>: " + rmsd.toPrecision(4) + " Å<br><br>";
|
|
51861
|
-
if(ic.bAfMem) {
|
|
51982
|
+
if(ic.bAfMem && !me.cfg.chainalign) {
|
|
51862
51983
|
//if(window.dialog && window.dialog.hasClass('ui-dialog-content')) window.dialog.dialog( "close" );
|
|
51863
51984
|
html += me.utilsCls.getMemDesc();
|
|
51864
51985
|
}
|
|
@@ -56920,6 +57041,18 @@ class ApplyCommand {
|
|
|
56920
57041
|
|
|
56921
57042
|
ic.addTrackCls.defineSecondary(chainid, 'coil');
|
|
56922
57043
|
}
|
|
57044
|
+
else if(commandOri.indexOf('define igstrand sets') == 0) {
|
|
57045
|
+
let chainStr = commandOri.split(' | ')[1];
|
|
57046
|
+
let chainid = chainStr.split(' ')[1];
|
|
57047
|
+
|
|
57048
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igstrand');
|
|
57049
|
+
}
|
|
57050
|
+
else if(commandOri.indexOf('define igloop sets') == 0) {
|
|
57051
|
+
let chainStr = commandOri.split(' | ')[1];
|
|
57052
|
+
let chainid = chainStr.split(' ')[1];
|
|
57053
|
+
|
|
57054
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igloop');
|
|
57055
|
+
}
|
|
56923
57056
|
else if(commandOri.indexOf('select interaction') == 0) {
|
|
56924
57057
|
let idArray = commandOri.substr(commandOri.lastIndexOf(' ') + 1).split(',');
|
|
56925
57058
|
if(idArray !== null) {
|
|
@@ -59720,6 +59853,7 @@ class SelectByCommand {
|
|
|
59720
59853
|
// $1,2,3: Structure
|
|
59721
59854
|
// .A,B,C: chain
|
|
59722
59855
|
// :5-10,K,chemicals: residues, could be 'proteins', 'nucleotides', 'chemicals', 'ions', and 'water'
|
|
59856
|
+
// :refnum_1250,anchors,strands,loops: reference numbers 1250, anchor residues (e.g., 2250), residues in strands, residues in loops
|
|
59723
59857
|
// @CA,C,C*: atoms
|
|
59724
59858
|
// wild card * can be used to select all
|
|
59725
59859
|
//var currHighlightAtoms = {}
|
|
@@ -59727,7 +59861,7 @@ class SelectByCommand {
|
|
|
59727
59861
|
let dollarPos = commandArray[i].indexOf('$');
|
|
59728
59862
|
let periodPos = commandArray[i].indexOf('.');
|
|
59729
59863
|
let colonPos = commandArray[i].indexOf(':');
|
|
59730
|
-
let colonPos2 = commandArray[i].indexOf('
|
|
59864
|
+
let colonPos2 = commandArray[i].indexOf(':ref_'); // for reference numbers
|
|
59731
59865
|
let atPos = commandArray[i].indexOf('@');
|
|
59732
59866
|
|
|
59733
59867
|
let moleculeStr, chainStr, residueStr, refResStr, atomStrArray;
|
|
@@ -59744,14 +59878,14 @@ class SelectByCommand {
|
|
|
59744
59878
|
if(colonPos === -1 && colonPos2 === -1 ) {
|
|
59745
59879
|
residueStr = "*";
|
|
59746
59880
|
}
|
|
59881
|
+
else if(colonPos2 != -1) {
|
|
59882
|
+
refResStr = testStr.substr(colonPos2 + 5);
|
|
59883
|
+
testStr = testStr.substr(0, colonPos2);
|
|
59884
|
+
}
|
|
59747
59885
|
else if(colonPos != -1) {
|
|
59748
59886
|
residueStr = testStr.substr(colonPos + 1);
|
|
59749
59887
|
testStr = testStr.substr(0, colonPos);
|
|
59750
59888
|
}
|
|
59751
|
-
else if(colonPos2 != -1) {
|
|
59752
|
-
refResStr = testStr.substr(colonPos2 + 1);
|
|
59753
|
-
testStr = testStr.substr(0, colonPos2);
|
|
59754
|
-
}
|
|
59755
59889
|
|
|
59756
59890
|
if(periodPos === -1) {
|
|
59757
59891
|
chainStr = "*";
|
|
@@ -59845,7 +59979,9 @@ class SelectByCommand {
|
|
|
59845
59979
|
else if(residueStrArray[j] === '*') { // all resiues
|
|
59846
59980
|
bAllResidues = true;
|
|
59847
59981
|
}
|
|
59848
|
-
else if(residueStrArray[j] !== 'proteins' && residueStrArray[j] !== 'nucleotides'
|
|
59982
|
+
else if(residueStrArray[j] !== 'proteins' && residueStrArray[j] !== 'nucleotides'
|
|
59983
|
+
&& residueStrArray[j] !== 'chemicals' && residueStrArray[j] !== 'ions' && residueStrArray[j] !== 'water'
|
|
59984
|
+
&& residueStrArray[j] !== 'anchors' && residueStrArray[j] !== 'strands' && residueStrArray[j] !== 'loops') { // residue name
|
|
59849
59985
|
let tmpStr = residueStrArray[j].toUpperCase();
|
|
59850
59986
|
//oneLetterResidue =(residueStrArray[j].length === 1) ? tmpStr : me.utilsCls.residueName2Abbr(tmpStr);
|
|
59851
59987
|
oneLetterResidueStr = tmpStr;
|
|
@@ -59914,6 +60050,16 @@ class SelectByCommand {
|
|
|
59914
60050
|
for(let m in chainAtomHash) {
|
|
59915
60051
|
// residue could also be 'proteins', 'nucleotides', 'chemicals', 'ions', and 'water'
|
|
59916
60052
|
ic.atoms[m].resn.substr(0,3).toUpperCase();
|
|
60053
|
+
let resid = molecule_chain + '_' + ic.atoms[m].resi;
|
|
60054
|
+
let refnumLabel, refnumStr, refnum;
|
|
60055
|
+
if(bRefnum) {
|
|
60056
|
+
refnumLabel = ic.resid2refnum[resid];
|
|
60057
|
+
if(refnumLabel) {
|
|
60058
|
+
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
60059
|
+
refnum = parseInt(refnumStr);
|
|
60060
|
+
}
|
|
60061
|
+
}
|
|
60062
|
+
|
|
59917
60063
|
if(bAllResidues
|
|
59918
60064
|
//|| me.utilsCls.residueName2Abbr(tmpStr) === oneLetterResidue
|
|
59919
60065
|
||(residueStrArray[j] === 'proteins' && m in ic.proteins)
|
|
@@ -59921,32 +60067,23 @@ class SelectByCommand {
|
|
|
59921
60067
|
||(residueStrArray[j] === 'chemicals' && m in ic.chemicals)
|
|
59922
60068
|
||(residueStrArray[j] === 'ions' && m in ic.ions)
|
|
59923
60069
|
||(residueStrArray[j] === 'water' && m in ic.water)
|
|
60070
|
+
||(bRefnum && refnumLabel && residueStrArray[j] === 'anchors' && refnum % 100 == 50)
|
|
60071
|
+
||(bRefnum && refnumLabel && residueStrArray[j] === 'strands' && !ic.residIgLoop.hasOwnProperty(resid))
|
|
60072
|
+
||(bRefnum && refnumLabel && residueStrArray[j] === 'loops' && ic.residIgLoop.hasOwnProperty(resid))
|
|
59924
60073
|
) {
|
|
59925
60074
|
// many duplicates
|
|
59926
60075
|
if(i === 0) {
|
|
59927
|
-
residueHash[
|
|
60076
|
+
residueHash[resid] = 1;
|
|
59928
60077
|
}
|
|
59929
60078
|
else {
|
|
59930
|
-
|
|
59931
|
-
//if(!residueHash.hasOwnProperty(residTmp)) residueHash[residTmp] = undefined;
|
|
59932
|
-
if(!residueHash.hasOwnProperty(residTmp)) delete residueHash[residTmp];
|
|
60079
|
+
if(!residueHash.hasOwnProperty(resid)) delete residueHash[resid];
|
|
59933
60080
|
}
|
|
59934
60081
|
|
|
59935
60082
|
for(let n = 0, nl = atomStrArray.length; n < nl; ++n) {
|
|
59936
60083
|
let atomStr = atomStrArray[n];
|
|
59937
60084
|
|
|
59938
60085
|
atomHash = this.processAtomStr(atomStr, atomHash, i, m);
|
|
59939
|
-
|
|
59940
|
-
// if(atomStr === '*' || atomStr === ic.atoms[m].name) {
|
|
59941
|
-
// if(i === 0) {
|
|
59942
|
-
// atomHash[m] = 1;
|
|
59943
|
-
// }
|
|
59944
|
-
// else {
|
|
59945
|
-
// if(!atomHash.hasOwnProperty(m)) delete atomHash[m];
|
|
59946
|
-
// }
|
|
59947
|
-
// }
|
|
59948
60086
|
}
|
|
59949
|
-
|
|
59950
60087
|
}
|
|
59951
60088
|
} // end for(let m in atomHash) {
|
|
59952
60089
|
|
|
@@ -62063,72 +62200,168 @@ class Dssp {
|
|
|
62063
62200
|
async showIgRefNum() { let ic = this.icn3d, me = ic.icn3dui;
|
|
62064
62201
|
let thisClass = this;
|
|
62065
62202
|
|
|
62066
|
-
// if(ic.
|
|
62067
|
-
// ic.
|
|
62068
|
-
|
|
62069
|
-
// // open sequence view
|
|
62070
|
-
// ic.hAtomsRefnum = {};
|
|
62071
|
-
// ic.bResetAnno = true;
|
|
62072
|
-
// await ic.showAnnoCls.showAnnotations();
|
|
62073
|
-
// ic.annotationCls.setAnnoViewAndDisplay('detailed view');
|
|
62203
|
+
// if(ic.pdbDataArray) {
|
|
62204
|
+
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62074
62205
|
// }
|
|
62075
|
-
|
|
62076
|
-
|
|
62077
|
-
|
|
62078
|
-
|
|
62079
|
-
|
|
62080
|
-
|
|
62081
|
-
|
|
62082
|
-
|
|
62083
|
-
|
|
62084
|
-
|
|
62085
|
-
|
|
62086
|
-
|
|
62087
|
-
|
|
62088
|
-
|
|
62089
|
-
|
|
62090
|
-
|
|
62091
|
-
|
|
62092
|
-
|
|
62093
|
-
|
|
62094
|
-
|
|
62095
|
-
|
|
62096
|
-
|
|
62097
|
-
|
|
62206
|
+
// else {
|
|
62207
|
+
//ic.refpdbArray = ['ASF1A_2iijA_human', 'B2Microglobulin_7phrL_human_C1', 'BArrestin1_4jqiA_rat_n1', 'BTLA_2aw2A_human_Iset', 'C3_2qkiD_human_n1', 'CD19_6al5A_human_C2orV-n1', 'CD2_1hnfA_human_C2-n2', 'CD2_1hnfA_human_V-n1', 'CD8a_1cd8A_human_V', 'CoAtomerGamma1_1r4xA_human', 'Contactin1_2ee2A_human_FN3-n9', 'Contactin1_3s97C_human_C2-n2', 'CuZnSuperoxideDismutase_1hl5C_human', 'ECadherin_4zt1A_human_n2', 'Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4', 'FAB-HEAVY_5esv_C1-n2', 'FAB-HEAVY_5esv_V-n1', 'FAB-LIGHT_5esv_C1-n2', 'FAB-LIGHT_5esv_V-n1', 'GHR_1axiB_human_FN3-n1', 'ICOS_6x4gA_human_V', 'IL6Rb_1bquB_human_FN3-n2', 'IL6Rb_1bquB_human_FN3-n3', 'InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2', 'IsdA_2iteA_bacteria', 'JAM1_1nbqA_human_VorIset-n2', 'LAG3_7tzgD_human_C2-n2', 'LAG3_7tzgD_human_V-n1', 'LaminAC_1ifrA_human', 'MHCIa_7phrH_human_C1', 'MPT63_1lmiA_bacteria', 'NaCaExchanger_2fwuA_dog_n2', 'NaKATPaseTransporterBeta_2zxeB_spurdogshark', 'ORF7a_1xakA_virus', 'PD1_4zqkB_human_V', 'PDL1_4z18B_human_V-n1', 'Palladin_2dm3A_human_Iset-n1', 'RBPJ_6py8C_human_Unk-n1', 'RBPJ_6py8C_human_Unk-n2', 'Sidekick2_1wf5A_human_FN3-n7', 'Siglec3_5j0bB_human_C2-n2', 'TCRa_6jxrm_human_C1-n2', 'TCRa_6jxrm_human_V-n1', 'TEAD1_3kysC_human', 'TP34_2o6cA_bacteria', 'TP47_1o75A_bacteria', 'Titin_4uowM_human_Unk-n152', 'VISTA_6oilA_human_V', 'VNAR_1t6vN_shark_V', 'VTCN1_Q7Z7D3_human_V-n2'];
|
|
62208
|
+
|
|
62209
|
+
//ic.refpdbArray = ['1ASF1A_2iijA_human', '1B2Microglobulin_7phrL_human_C1', '1BArrestin1_4jqiA_rat_n1', '1BTLA_2aw2A_human_Iset', '1C3_2qkiD_human_n1', '1CD19_6al5A_human_C2orV-n1', '1CD2_1hnfA_human_C2-n2', '1CD2_1hnfA_human_V-n1', '1CD8a_1cd8A_human_V', '1CoAtomerGamma1_1r4xA_human', '1Contactin1_2ee2A_human_FN3-n9', '1Contactin1_3s97C_human_C2-n2', '1CuZnSuperoxideDismutase_1hl5C_human', '1ECadherin_4zt1A_human_n2', '1Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4', '1FAB-HEAVY_5esv_C1-n2', '1FAB-HEAVY_5esv_V-n1', '1FAB-LIGHT_5esv_C1-n2', '1FAB-LIGHT_5esv_V-n1', '1GHR_1axiB_human_FN3-n1', '1ICOS_6x4gA_human_V', '1IL6Rb_1bquB_human_FN3-n2', '1IL6Rb_1bquB_human_FN3-n3', '1InsulinR_8guyE_human_FN3-n1', '1InsulinR_8guyE_human_FN3-n2', '1IsdA_2iteA_bacteria', '1JAM1_1nbqA_human_VorIset-n2', '1LAG3_7tzgD_human_C2-n2', '1LAG3_7tzgD_human_V-n1', '1LaminAC_1ifrA_human', '1MHCIa_7phrH_human_C1', '1MPT63_1lmiA_bacteria', '1NaCaExchanger_2fwuA_dog_n2', '1NaKATPaseTransporterBeta_2zxeB_spurdogshark', '1ORF7a_1xakA_virus', '1PD1_4zqkB_human_V', '1PDL1_4z18B_human_V-n1', '1Palladin_2dm3A_human_Iset-n1', '1RBPJ_6py8C_human_Unk-n1', '1RBPJ_6py8C_human_Unk-n2', '1Sidekick2_1wf5A_human_FN3-n7', '1Siglec3_5j0bB_human_C2-n2', '1TCRa_6jxrm_human_C1-n2', '1TCRa_6jxrm_human_V-n1', '1TEAD1_3kysC_human', '1TP34_2o6cA_bacteria', '1TP47_1o75A_bacteria', '1Titin_4uowM_human_Unk-n152', '1VISTA_6oilA_human_V', '1VNAR_1t6vN_shark_V', '1VTCN1_Q7Z7D3_human_V-n2'];
|
|
62210
|
+
|
|
62211
|
+
/*
|
|
62212
|
+
// round 1
|
|
62213
|
+
ic.refpdbArray = ['NaKATPaseTransporterBeta_2zxeB_spurdogshark', 'GHR_1axiB_human_FN3-n1', 'FAB-HEAVY_5esv_C1-n2', 'IL6Rb_1bquB_human_FN3-n2', 'LAG3_7tzgD_human_C2-n2', 'VNAR_1t6vN_shark_V', 'VISTA_6oilA_human_V', 'CD19_6al5A_human_C2orV-n1', 'TP47_1o75A_bacteria', 'TP34_2o6cA_bacteria'];
|
|
62214
|
+
// round 2
|
|
62215
|
+
ic.refpdbHash = {};
|
|
62216
|
+
|
|
62217
|
+
ic.refpdbHash['NaKATPaseTransporterBeta_2zxeB_spurdogshark'] = ['NaKATPaseTransporterBeta_2zxeB_spurdogshark', 'ORF7a_1xakA_virus', 'NaCaExchanger_2fwuA_dog_n2', 'BArrestin1_4jqiA_rat_n1', 'ECadherin_4zt1A_human_n2', 'C3_2qkiD_human_n1', 'RBPJ_6py8C_human_Unk-n1'];
|
|
62218
|
+
ic.refpdbHash['GHR_1axiB_human_FN3-n1'] = ['GHR_1axiB_human_FN3-n1', 'Siglec3_5j0bB_human_C2-n2', 'ICOS_6x4gA_human_V', 'CD2_1hnfA_human_C2-n2', 'Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
62219
|
+
ic.refpdbHash['FAB-HEAVY_5esv_C1-n2'] = ['FAB-HEAVY_5esv_C1-n2', 'B2Microglobulin_7phrL_human_C1', 'VTCN1_Q7Z7D3_human_V-n2', 'FAB-LIGHT_5esv_C1-n2', 'MHCIa_7phrH_human_C1'];
|
|
62220
|
+
ic.refpdbHash['IL6Rb_1bquB_human_FN3-n2'] = ['IL6Rb_1bquB_human_FN3-n2', 'Contactin1_2ee2A_human_FN3-n9', 'IL6Rb_1bquB_human_FN3-n3', 'InsulinR_8guyE_human_FN3-n1', 'Sidekick2_1wf5A_human_FN3-n7', 'InsulinR_8guyE_human_FN3-n2'];
|
|
62221
|
+
ic.refpdbHash['LAG3_7tzgD_human_C2-n2'] = ['LAG3_7tzgD_human_C2-n2', 'JAM1_1nbqA_human_VorIset-n2', 'Contactin1_3s97C_human_C2-n2', 'Palladin_2dm3A_human_Iset-n1', 'BTLA_2aw2A_human_Iset', 'Titin_4uowM_human_Unk-n152'];
|
|
62222
|
+
ic.refpdbHash['VNAR_1t6vN_shark_V'] = ['VNAR_1t6vN_shark_V', 'PD1_4zqkB_human_V', 'CD8a_1cd8A_human_V', 'TCRa_6jxrm_human_V-n1', 'FAB-HEAVY_5esv_V-n1', 'FAB-LIGHT_5esv_V-n1'];
|
|
62223
|
+
ic.refpdbHash['VISTA_6oilA_human_V'] = ['VISTA_6oilA_human_V', 'LAG3_7tzgD_human_V-n1', 'PDL1_4z18B_human_V-n1', 'CD2_1hnfA_human_V-n1'];
|
|
62224
|
+
ic.refpdbHash['CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
62225
|
+
ic.refpdbHash['TP47_1o75A_bacteria'] = ['TP47_1o75A_bacteria', 'TEAD1_3kysC_human', 'RBPJ_6py8C_human_Unk-n2', 'CuZnSuperoxideDismutase_1hl5C_human', 'ASF1A_2iijA_human'];
|
|
62226
|
+
ic.refpdbHash['TP34_2o6cA_bacteria'] = ['TP34_2o6cA_bacteria', 'TCRa_6jxrm_human_C1-n2', 'IsdA_2iteA_bacteria', 'LaminAC_1ifrA_human', 'CoAtomerGamma1_1r4xA_human', 'MPT63_1lmiA_bacteria'];
|
|
62227
|
+
*/
|
|
62228
|
+
/*
|
|
62229
|
+
// round 1
|
|
62230
|
+
ic.refpdbArray = ['NaCaExchanger_2fwuA_dog_n2', 'C3_2qkiD_human_n1', 'Siglec3_5j0bB_human_C2-n2', 'ICOS_6x4gA_human_V', 'B2Microglobulin_7phrL_human_C1', 'VTCN1_Q7Z7D3_human_V-n2', 'Contactin1_2ee2A_human_FN3-n9', 'InsulinR_8guyE_human_FN3-n1', 'JAM1_1nbqA_human_VorIset-n2', 'LAG3_7tzgD_human_C2-n2', 'Palladin_2dm3A_human_Iset-n1', 'PD1_4zqkB_human_V', 'CD8a_1cd8A_human_V', 'VISTA_6oilA_human_V', 'LAG3_7tzgD_human_V-n1', 'TP47_1o75A_bacteria', 'TP34_2o6cA_bacteria', 'TEAD1_3kysC_human', 'RBPJ_6py8C_human_Unk-n2', 'TCRa_6jxrm_human_C1-n2', 'IsdA_2iteA_bacteria', 'LaminAC_1ifrA_human', 'CD19_6al5A_human_C2orV-n1'];
|
|
62231
|
+
|
|
62232
|
+
// round 2
|
|
62233
|
+
ic.refpdbHash = {};
|
|
62234
|
+
ic.refpdbHash['NaCaExchanger_2fwuA_dog_n2'] = ['NaCaExchanger_2fwuA_dog_n2', 'ORF7a_1xakA_virus', 'ECadherin_4zt1A_human_n2', 'NaKATPaseTransporterBeta_2zxeB_spurdogshark'];
|
|
62235
|
+
ic.refpdbHash['C3_2qkiD_human_n1'] = ['C3_2qkiD_human_n1', 'RBPJ_6py8C_human_Unk-n1', 'BArrestin1_4jqiA_rat_n1'];
|
|
62236
|
+
ic.refpdbHash['Siglec3_5j0bB_human_C2-n2'] = ['Siglec3_5j0bB_human_C2-n2', 'CD2_1hnfA_human_C2-n2', 'GHR_1axiB_human_FN3-n1'];
|
|
62237
|
+
ic.refpdbHash['ICOS_6x4gA_human_V'] = ['ICOS_6x4gA_human_V', 'Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
62238
|
+
ic.refpdbHash['B2Microglobulin_7phrL_human_C1'] = ['B2Microglobulin_7phrL_human_C1', 'FAB-HEAVY_5esv_C1-n2', 'MHCIa_7phrH_human_C1'];
|
|
62239
|
+
ic.refpdbHash['VTCN1_Q7Z7D3_human_V-n2'] = ['VTCN1_Q7Z7D3_human_V-n2', 'FAB-LIGHT_5esv_C1-n2'];
|
|
62240
|
+
ic.refpdbHash['Contactin1_2ee2A_human_FN3-n9'] = ['Contactin1_2ee2A_human_FN3-n9', 'IL6Rb_1bquB_human_FN3-n3', 'Sidekick2_1wf5A_human_FN3-n7'];
|
|
62241
|
+
ic.refpdbHash['InsulinR_8guyE_human_FN3-n1'] = ['InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2', 'IL6Rb_1bquB_human_FN3-n2'];
|
|
62242
|
+
ic.refpdbHash['JAM1_1nbqA_human_VorIset-n2'] = ['JAM1_1nbqA_human_VorIset-n2', 'Contactin1_3s97C_human_C2-n2'];
|
|
62243
|
+
ic.refpdbHash['LAG3_7tzgD_human_C2-n2'] = ['LAG3_7tzgD_human_C2-n2', 'BTLA_2aw2A_human_Iset'];
|
|
62244
|
+
ic.refpdbHash['Palladin_2dm3A_human_Iset-n1'] = ['Palladin_2dm3A_human_Iset-n1', 'Titin_4uowM_human_Unk-n152'];
|
|
62245
|
+
ic.refpdbHash['PD1_4zqkB_human_V'] = ['PD1_4zqkB_human_V', 'TCRa_6jxrm_human_V-n1', 'FAB-LIGHT_5esv_V-n1'];
|
|
62246
|
+
ic.refpdbHash['CD8a_1cd8A_human_V'] = ['CD8a_1cd8A_human_V', 'FAB-HEAVY_5esv_V-n1', 'VNAR_1t6vN_shark_V'];
|
|
62247
|
+
ic.refpdbHash['VISTA_6oilA_human_V'] = ['VISTA_6oilA_human_V', 'PDL1_4z18B_human_V-n1', 'CD2_1hnfA_human_V-n1'];
|
|
62248
|
+
ic.refpdbHash['LAG3_7tzgD_human_V-n1'] = ['LAG3_7tzgD_human_V-n1'];
|
|
62249
|
+
ic.refpdbHash['TP47_1o75A_bacteria'] = ['TP47_1o75A_bacteria'];
|
|
62250
|
+
ic.refpdbHash['TP34_2o6cA_bacteria'] = ['TP34_2o6cA_bacteria'];
|
|
62251
|
+
ic.refpdbHash['TEAD1_3kysC_human'] = ['TEAD1_3kysC_human', 'CuZnSuperoxideDismutase_1hl5C_human'];
|
|
62252
|
+
ic.refpdbHash['RBPJ_6py8C_human_Unk-n2'] = ['RBPJ_6py8C_human_Unk-n2', 'ASF1A_2iijA_human'];
|
|
62253
|
+
ic.refpdbHash['TCRa_6jxrm_human_C1-n2'] = ['TCRa_6jxrm_human_C1-n2'];
|
|
62254
|
+
ic.refpdbHash['IsdA_2iteA_bacteria'] = ['IsdA_2iteA_bacteria', 'CoAtomerGamma1_1r4xA_human'];
|
|
62255
|
+
ic.refpdbHash['LaminAC_1ifrA_human'] = ['LaminAC_1ifrA_human', 'MPT63_1lmiA_bacteria'];
|
|
62256
|
+
ic.refpdbHash['CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
62257
|
+
*/
|
|
62258
|
+
// round 1
|
|
62259
|
+
ic.refpdbArray = ['1FAB-HEAVY_5esv_V-n1', '1CD2_1hnfA_human_V-n1', '1LAG3_7tzgD_human_C2-n2', '1BTLA_2aw2A_human_Iset', '1JAM1_1nbqA_human_VorIset-n2', '1Palladin_2dm3A_human_Iset-n1', '1FAB-HEAVY_5esv_C1-n2', '1FAB-LIGHT_5esv_C1-n2', '1BArrestin1_4jqiA_rat_n1', '1IL6Rb_1bquB_human_FN3-n3', '1Contactin1_2ee2A_human_FN3-n9', '1InsulinR_8guyE_human_FN3-n1', '1NaCaExchanger_2fwuA_dog_n2', '1CuZnSuperoxideDismutase_1hl5C_human', '1CoAtomerGamma1_1r4xA_human', '1RBPJ_6py8C_human_Unk-n2', '1CD2_1hnfA_human_C2-n2', '1GHR_1axiB_human_FN3-n1', '1Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4', '1ICOS_6x4gA_human_V', '1TCRa_6jxrm_human_C1-n2', '1LaminAC_1ifrA_human', '1IsdA_2iteA_bacteria', '1MPT63_1lmiA_bacteria', '1CD19_6al5A_human_C2orV-n1', '1ORF7a_1xakA_virus', '1ECadherin_4zt1A_human_n2', '1ASF1A_2iijA_human'];
|
|
62260
|
+
|
|
62261
|
+
// round 2
|
|
62262
|
+
ic.refpdbHash = {};
|
|
62263
|
+
ic.refpdbHash['1FAB-HEAVY_5esv_V-n1'] = ['FAB-HEAVY_5esv_V-n1', 'CD8a_1cd8A_human_V', 'FAB-LIGHT_5esv_V-n1', 'VNAR_1t6vN_shark_V'];
|
|
62264
|
+
ic.refpdbHash['1CD2_1hnfA_human_V-n1'] = ['CD2_1hnfA_human_V-n1', 'Contactin1_3s97C_human_C2-n2', 'LAG3_7tzgD_human_V-n1'];
|
|
62265
|
+
ic.refpdbHash['1LAG3_7tzgD_human_C2-n2'] = ['LAG3_7tzgD_human_C2-n2', 'Siglec3_5j0bB_human_C2-n2'];
|
|
62266
|
+
ic.refpdbHash['1BTLA_2aw2A_human_Iset'] = ['BTLA_2aw2A_human_Iset', 'PD1_4zqkB_human_V', 'TCRa_6jxrm_human_V-n1'];
|
|
62267
|
+
ic.refpdbHash['1JAM1_1nbqA_human_VorIset-n2'] = ['JAM1_1nbqA_human_VorIset-n2', 'PDL1_4z18B_human_V-n1'];
|
|
62268
|
+
ic.refpdbHash['1Palladin_2dm3A_human_Iset-n1'] = ['Palladin_2dm3A_human_Iset-n1', 'Titin_4uowM_human_Unk-n152', 'VISTA_6oilA_human_V'];
|
|
62269
|
+
ic.refpdbHash['1FAB-HEAVY_5esv_C1-n2'] = ['FAB-HEAVY_5esv_C1-n2', 'B2Microglobulin_7phrL_human_C1', 'MHCIa_7phrH_human_C1'];
|
|
62270
|
+
ic.refpdbHash['1FAB-LIGHT_5esv_C1-n2'] = ['FAB-LIGHT_5esv_C1-n2', 'VTCN1_Q7Z7D3_human_V-n2'];
|
|
62271
|
+
ic.refpdbHash['1BArrestin1_4jqiA_rat_n1'] = ['BArrestin1_4jqiA_rat_n1', 'C3_2qkiD_human_n1', 'RBPJ_6py8C_human_Unk-n1'];
|
|
62272
|
+
ic.refpdbHash['1IL6Rb_1bquB_human_FN3-n3'] = ['IL6Rb_1bquB_human_FN3-n3', 'Sidekick2_1wf5A_human_FN3-n7'];
|
|
62273
|
+
ic.refpdbHash['1Contactin1_2ee2A_human_FN3-n9'] = ['Contactin1_2ee2A_human_FN3-n9', 'IL6Rb_1bquB_human_FN3-n2'];
|
|
62274
|
+
ic.refpdbHash['1InsulinR_8guyE_human_FN3-n1'] = ['InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2'];
|
|
62275
|
+
ic.refpdbHash['1NaCaExchanger_2fwuA_dog_n2'] = ['NaCaExchanger_2fwuA_dog_n2', 'NaKATPaseTransporterBeta_2zxeB_spurdogshark'];
|
|
62276
|
+
ic.refpdbHash['1CuZnSuperoxideDismutase_1hl5C_human'] = ['CuZnSuperoxideDismutase_1hl5C_human', 'TEAD1_3kysC_human'];
|
|
62277
|
+
ic.refpdbHash['1CoAtomerGamma1_1r4xA_human'] = ['CoAtomerGamma1_1r4xA_human', 'TP34_2o6cA_bacteria'];
|
|
62278
|
+
ic.refpdbHash['1RBPJ_6py8C_human_Unk-n2'] = ['RBPJ_6py8C_human_Unk-n2', 'TP47_1o75A_bacteria'];
|
|
62279
|
+
|
|
62280
|
+
ic.refpdbHash['1CD2_1hnfA_human_C2-n2'] = ['CD2_1hnfA_human_C2-n2'];
|
|
62281
|
+
ic.refpdbHash['1GHR_1axiB_human_FN3-n1'] = ['GHR_1axiB_human_FN3-n1'];
|
|
62282
|
+
ic.refpdbHash['1Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'] = ['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
62283
|
+
ic.refpdbHash['1ICOS_6x4gA_human_V'] = ['ICOS_6x4gA_human_V'];
|
|
62284
|
+
ic.refpdbHash['1TCRa_6jxrm_human_C1-n2'] = ['TCRa_6jxrm_human_C1-n2'];
|
|
62285
|
+
ic.refpdbHash['1LaminAC_1ifrA_human'] = ['LaminAC_1ifrA_human'];
|
|
62286
|
+
ic.refpdbHash['1IsdA_2iteA_bacteria'] = ['IsdA_2iteA_bacteria'];
|
|
62287
|
+
ic.refpdbHash['1MPT63_1lmiA_bacteria'] = ['MPT63_1lmiA_bacteria'];
|
|
62288
|
+
ic.refpdbHash['1CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
62289
|
+
ic.refpdbHash['1ORF7a_1xakA_virus'] = ['ORF7a_1xakA_virus'];
|
|
62290
|
+
ic.refpdbHash['1ECadherin_4zt1A_human_n2'] = ['ECadherin_4zt1A_human_n2'];
|
|
62291
|
+
ic.refpdbHash['1ASF1A_2iijA_human'] = ['ASF1A_2iijA_human'];
|
|
62292
|
+
|
|
62293
|
+
// use known ref structure
|
|
62294
|
+
ic.refpdbHash['5ESV'] = ['FAB-HEAVY_5esv_V-n1', 'FAB-LIGHT_5esv_V-n1', 'FAB-HEAVY_5esv_C1-n2', 'FAB-LIGHT_5esv_C1-n2'];
|
|
62295
|
+
ic.refpdbHash['8GUY'] = ['InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2'];
|
|
62296
|
+
ic.refpdbHash['6JXR'] = ['TCRa_6jxrm_human_V-n1', 'TCRa_6jxrm_human_C1-n2'];
|
|
62297
|
+
ic.refpdbHash['1HNF'] = ['CD2_1hnfA_human_V-n1', 'CD2_1hnfA_human_C2-n2'];
|
|
62298
|
+
ic.refpdbHash['7TZG'] = ['LAG3_7tzgD_human_V-n1', 'LAG3_7tzgD_human_C2-n2'];
|
|
62299
|
+
ic.refpdbHash['6PY8'] = ['RBPJ_6py8C_human_Unk-n1', 'RBPJ_6py8C_human_Unk-n2'];
|
|
62300
|
+
ic.refpdbHash['1BQU'] = ['IL6Rb_1bquB_human_FN3-n2', 'IL6Rb_1bquB_human_FN3-n3'];
|
|
62301
|
+
|
|
62302
|
+
ic.refpdbHash['1R4X'] = ['CoAtomerGamma1_1r4xA_human'];
|
|
62303
|
+
ic.refpdbHash['6OIL'] = ['VISTA_6oilA_human_V'];
|
|
62304
|
+
ic.refpdbHash['2ZXE'] = ['NaKATPaseTransporterBeta_2zxeB_spurdogshark'];
|
|
62305
|
+
ic.refpdbHash['1I8A'] = ['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
62306
|
+
ic.refpdbHash['2FWU'] = ['NaCaExchanger_2fwuA_dog_n2'];
|
|
62307
|
+
ic.refpdbHash['4JQI'] = ['BArrestin1_4jqiA_rat_n1'];
|
|
62308
|
+
ic.refpdbHash['1NBQ'] = ['JAM1_1nbqA_human_VorIset-n2'];
|
|
62309
|
+
ic.refpdbHash['1O75'] = ['TP47_1o75A_bacteria'];
|
|
62310
|
+
ic.refpdbHash['7PHR'] = ['MHCIa_7phrH_human_C1'];
|
|
62311
|
+
ic.refpdbHash['2IIJ'] = ['ASF1A_2iijA_human'];
|
|
62312
|
+
ic.refpdbHash['4Z18'] = ['PDL1_4z18B_human_V-n1'];
|
|
62313
|
+
ic.refpdbHash['1T6V'] = ['VNAR_1t6vN_shark_V'];
|
|
62314
|
+
ic.refpdbHash['2O6C'] = ['TP34_2o6cA_bacteria'];
|
|
62315
|
+
ic.refpdbHash['3KYS'] = ['TEAD1_3kysC_human'];
|
|
62316
|
+
ic.refpdbHash['7PHR'] = ['B2Microglobulin_7phrL_human_C1'];
|
|
62317
|
+
ic.refpdbHash['2AW2'] = ['BTLA_2aw2A_human_Iset'];
|
|
62318
|
+
ic.refpdbHash['1HL5'] = ['CuZnSuperoxideDismutase_1hl5C_human'];
|
|
62319
|
+
ic.refpdbHash['1WF5'] = ['Sidekick2_1wf5A_human_FN3-n7'];
|
|
62320
|
+
ic.refpdbHash['5J0B'] = ['Siglec3_5j0bB_human_C2-n2'];
|
|
62321
|
+
ic.refpdbHash['1IFR'] = ['LaminAC_1ifrA_human'];
|
|
62322
|
+
ic.refpdbHash['Q7Z7D3'] = ['VTCN1_Q7Z7D3_human_V-n2'];
|
|
62323
|
+
ic.refpdbHash['4ZQK'] = ['PD1_4zqkB_human_V'];
|
|
62324
|
+
ic.refpdbHash['2DM3'] = ['Palladin_2dm3A_human_Iset-n1'];
|
|
62325
|
+
ic.refpdbHash['2ITE'] = ['IsdA_2iteA_bacteria'];
|
|
62326
|
+
ic.refpdbHash['1XAK'] = ['ORF7a_1xakA_virus'];
|
|
62327
|
+
ic.refpdbHash['4ZT1'] = ['ECadherin_4zt1A_human_n2'];
|
|
62328
|
+
ic.refpdbHash['1LMI'] = ['MPT63_1lmiA_bacteria'];
|
|
62329
|
+
ic.refpdbHash['1CD8'] = ['CD8a_1cd8A_human_V'];
|
|
62330
|
+
ic.refpdbHash['3S97'] = ['Contactin1_3s97C_human_C2-n2'];
|
|
62331
|
+
ic.refpdbHash['1AXI'] = ['GHR_1axiB_human_FN3-n1'];
|
|
62332
|
+
ic.refpdbHash['6X4G'] = ['ICOS_6x4gA_human_V'];
|
|
62333
|
+
ic.refpdbHash['2EE2'] = ['Contactin1_2ee2A_human_FN3-n9'];
|
|
62334
|
+
ic.refpdbHash['4UOW'] = ['Titin_4uowM_human_Unk-n152'];
|
|
62335
|
+
ic.refpdbHash['6A15'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
62336
|
+
ic.refpdbHash['2QKI'] = ['C3_2qkiD_human_n1'];
|
|
62337
|
+
|
|
62338
|
+
// if(ic.pdbDataArray) {
|
|
62339
|
+
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62340
|
+
// }
|
|
62341
|
+
// else {
|
|
62098
62342
|
|
|
62099
|
-
|
|
62343
|
+
let pdbAjaxArray = [];
|
|
62344
|
+
for(let k = 0, kl = ic.refpdbArray.length; k < kl; ++k) {
|
|
62345
|
+
//let urlpdb = me.htmlCls.baseUrl + "icn3d/refpdb/" + ic.refpdbArray[k] + ".pdb";
|
|
62346
|
+
let urlpdb = me.htmlCls.baseUrl + "mmcifparser/mmcifparser.cgi?refpdbid=" + ic.refpdbArray[k];
|
|
62100
62347
|
|
|
62101
|
-
|
|
62102
|
-
}
|
|
62348
|
+
let pdbAjax = me.getAjaxPromise(urlpdb, 'text');
|
|
62103
62349
|
|
|
62104
|
-
|
|
62105
|
-
// if(!me.bNode) {
|
|
62106
|
-
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
62107
|
-
ic.pdbDataArray = await allPromise;
|
|
62108
|
-
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62109
|
-
// }
|
|
62110
|
-
// else {
|
|
62111
|
-
// ic.pdbDataArray = [];
|
|
62112
|
-
// for(let i = 0, il = pdbAjaxArray.length; i < il; ++i) {
|
|
62113
|
-
// try {
|
|
62114
|
-
// let dataTmp = await pdbAjaxArray[i];
|
|
62115
|
-
// ic.pdbDataArray.push({'value': dataTmp});
|
|
62116
|
-
// }
|
|
62117
|
-
// catch(err) {
|
|
62118
|
-
// ic.pdbDataArray.push({'value': ''});
|
|
62119
|
-
// }
|
|
62120
|
-
// }
|
|
62121
|
-
|
|
62122
|
-
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62123
|
-
// }
|
|
62124
|
-
// }
|
|
62125
|
-
// catch(err) {
|
|
62126
|
-
// if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62127
|
-
// //var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62128
|
-
// return;
|
|
62129
|
-
// }
|
|
62130
|
-
}
|
|
62350
|
+
pdbAjaxArray.push(pdbAjax);
|
|
62131
62351
|
}
|
|
62352
|
+
|
|
62353
|
+
// try {
|
|
62354
|
+
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
62355
|
+
ic.pdbDataArray = await allPromise;
|
|
62356
|
+
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62357
|
+
// }
|
|
62358
|
+
// catch(err) {
|
|
62359
|
+
// if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62360
|
+
// //var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62361
|
+
// return;
|
|
62362
|
+
// }
|
|
62363
|
+
// }
|
|
62364
|
+
// }
|
|
62132
62365
|
}
|
|
62133
62366
|
|
|
62134
62367
|
async parseRefPdbData(dataArray) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -62143,6 +62376,9 @@ class Dssp {
|
|
|
62143
62376
|
|
|
62144
62377
|
// if(!ic.resid2domainid) ic.resid2domainid = {};
|
|
62145
62378
|
ic.resid2domainid = {};
|
|
62379
|
+
ic.domainid2pdb = {};
|
|
62380
|
+
|
|
62381
|
+
let minResidues = 20;
|
|
62146
62382
|
|
|
62147
62383
|
for(let i = 0, il = struArray.length; i < il; ++i) {
|
|
62148
62384
|
let struct = struArray[i];
|
|
@@ -62153,7 +62389,7 @@ class Dssp {
|
|
|
62153
62389
|
|
|
62154
62390
|
if(!ic.proteins.hasOwnProperty(ic.firstAtomObjCls.getFirstAtomObj(ic.chains[chainid]).serial)
|
|
62155
62391
|
&& !ic.proteins.hasOwnProperty(ic.firstAtomObjCls.getMiddleAtomObj(ic.chains[chainid]).serial)) continue;
|
|
62156
|
-
if(ic.chainsSeq[chainid].length <
|
|
62392
|
+
if(ic.chainsSeq[chainid].length < minResidues) continue; // peptide
|
|
62157
62393
|
|
|
62158
62394
|
let currAtoms = me.hashUtilsCls.intHash(ic.chains[chainid], ic.hAtoms);
|
|
62159
62395
|
if(Object.keys(currAtoms).length == 0) continue;
|
|
@@ -62170,11 +62406,6 @@ class Dssp {
|
|
|
62170
62406
|
//domainAtomsArray.push(ic.chains[chainid]);
|
|
62171
62407
|
domainAtomsArray.push(currAtoms);
|
|
62172
62408
|
|
|
62173
|
-
// for(let n = 0, nl = ic.chainsSeq[chainid].length; n < nl; ++n) {
|
|
62174
|
-
// let resid = chainid + '_' + ic.chainsSeq[chainid][n].resi;
|
|
62175
|
-
// ic.resid2domainid[resid] = chainid + '-0';
|
|
62176
|
-
// }
|
|
62177
|
-
|
|
62178
62409
|
let residueArray = ic.resid2specCls.atoms2residues(Object.keys(currAtoms));
|
|
62179
62410
|
for(let n = 0, nl = residueArray.length; n < nl; ++n) {
|
|
62180
62411
|
let resid = residueArray[n];
|
|
@@ -62205,6 +62436,7 @@ class Dssp {
|
|
|
62205
62436
|
for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
|
|
62206
62437
|
let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
|
|
62207
62438
|
let domainid = chainid + '-' + k;
|
|
62439
|
+
ic.domainid2pdb[domainid] = pdb_target;
|
|
62208
62440
|
|
|
62209
62441
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
62210
62442
|
let struct2 = ic.defaultPdbId + index;
|
|
@@ -62216,31 +62448,19 @@ class Dssp {
|
|
|
62216
62448
|
let alignAjax = me.getAjaxPostPromise(urltmalign, dataObj);
|
|
62217
62449
|
ajaxArray.push(alignAjax);
|
|
62218
62450
|
|
|
62219
|
-
domainidpairArray.push(domainid + "," + index);
|
|
62451
|
+
domainidpairArray.push(domainid + "," + ic.refpdbArray[index]);
|
|
62220
62452
|
}
|
|
62221
62453
|
}
|
|
62222
62454
|
}
|
|
62223
|
-
|
|
62455
|
+
}
|
|
62224
62456
|
|
|
62225
62457
|
// try {
|
|
62226
62458
|
let dataArray2 = [];
|
|
62227
|
-
|
|
62228
|
-
|
|
62229
|
-
|
|
62230
|
-
|
|
62231
|
-
|
|
62232
|
-
// for(let i = 0, il = ajaxArray.length; i < il; ++i) {
|
|
62233
|
-
// try {
|
|
62234
|
-
// let dataTmp = await ajaxArray[i];
|
|
62235
|
-
// dataArray2.push({'value': dataTmp});
|
|
62236
|
-
// }
|
|
62237
|
-
// catch(err) {
|
|
62238
|
-
// dataArray2.push({'value': []});
|
|
62239
|
-
// }
|
|
62240
|
-
// }
|
|
62241
|
-
// }
|
|
62242
|
-
|
|
62243
|
-
await thisClass.parseAlignData(dataArray2, domainidpairArray);
|
|
62459
|
+
let allPromise = Promise.allSettled(ajaxArray);
|
|
62460
|
+
dataArray2 = await allPromise;
|
|
62461
|
+
|
|
62462
|
+
let bRound1 = true;
|
|
62463
|
+
await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
|
|
62244
62464
|
|
|
62245
62465
|
/// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
|
|
62246
62466
|
// }
|
|
@@ -62251,7 +62471,7 @@ class Dssp {
|
|
|
62251
62471
|
// }
|
|
62252
62472
|
}
|
|
62253
62473
|
|
|
62254
|
-
async parseAlignData(dataArray, domainidpairArray) { let ic = this.icn3d, me = ic.icn3dui;
|
|
62474
|
+
async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
|
|
62255
62475
|
let thisClass = this;
|
|
62256
62476
|
|
|
62257
62477
|
let tmscoreThreshold = 0.4; //0.5;
|
|
@@ -62259,16 +62479,18 @@ class Dssp {
|
|
|
62259
62479
|
// find the best alignment for each chain
|
|
62260
62480
|
let domainid2score = {}, domainid2segs = {}, chainid2segs = {};
|
|
62261
62481
|
|
|
62262
|
-
if(!ic.
|
|
62263
|
-
if(!ic.
|
|
62482
|
+
if(!ic.chainid2refpdbname) ic.chainid2refpdbname = {};
|
|
62483
|
+
if(!ic.domainid2refpdbname) ic.domainid2refpdbname = {};
|
|
62264
62484
|
if(!ic.domainid2ig2kabat) ic.domainid2ig2kabat = {};
|
|
62265
62485
|
if(!ic.domainid2ig2imgt) ic.domainid2ig2imgt = {};
|
|
62266
62486
|
|
|
62267
|
-
// ic.
|
|
62268
|
-
// ic.
|
|
62487
|
+
// ic.chainid2refpdbname = {};
|
|
62488
|
+
// ic.domainid2refpdbname = {};
|
|
62269
62489
|
// ic.domainid2ig2kabat = {};
|
|
62270
62490
|
// ic.domainid2ig2imgt = {};
|
|
62271
62491
|
|
|
62492
|
+
let minResidues = 20;
|
|
62493
|
+
|
|
62272
62494
|
for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
|
|
62273
62495
|
let queryData = dataArray[i].value; //[0];
|
|
62274
62496
|
|
|
@@ -62278,12 +62500,14 @@ class Dssp {
|
|
|
62278
62500
|
}
|
|
62279
62501
|
|
|
62280
62502
|
if(queryData.length == 0) continue;
|
|
62503
|
+
|
|
62504
|
+
if(queryData[0].score < tmscoreThreshold || queryData[0].num_res < minResidues) continue;
|
|
62281
62505
|
|
|
62282
|
-
|
|
62283
|
-
|
|
62284
|
-
let
|
|
62285
|
-
let
|
|
62286
|
-
domainid.split('-')[0];
|
|
62506
|
+
//let domainid_index = domainidpairArray[i].split(',');
|
|
62507
|
+
//let domainid = domainid_index[0];
|
|
62508
|
+
let domainid = domainidpairArray[i].substr(0, domainidpairArray[i].indexOf(','));
|
|
62509
|
+
let refpdbname = domainidpairArray[i].substr(domainidpairArray[i].indexOf(',') + 1);
|
|
62510
|
+
//let chainid = domainid.split('-')[0];
|
|
62287
62511
|
|
|
62288
62512
|
// Ig-like domains: B (2150, 2150a, 2150b), C (3150, 3250), E (7150, 7250), F (8150, 8250) strands
|
|
62289
62513
|
// Ig domain may require G (7050). But we'll leave that out for now.
|
|
@@ -62312,22 +62536,76 @@ class Dssp {
|
|
|
62312
62536
|
if(!(bBstrand && bCstrand && bEstrand && bFstrand)) continue;
|
|
62313
62537
|
|
|
62314
62538
|
if(!domainid2score.hasOwnProperty(domainid) || queryData[0].score > domainid2score[domainid]) {
|
|
62315
|
-
domainid2score[domainid] = queryData[0].score;
|
|
62316
|
-
if(!me.bNode) console.log(domainid + ' TM-score: ' + domainid2score[domainid] + ' matched ' + ic.refpdbArray[domainid_index[1]]);
|
|
62539
|
+
domainid2score[domainid] = queryData[0].score;
|
|
62317
62540
|
|
|
62318
|
-
|
|
62319
|
-
ic.domainid2index[domainid] = domainid_index[1];
|
|
62541
|
+
ic.domainid2refpdbname[domainid] = refpdbname;
|
|
62320
62542
|
domainid2segs[domainid] = queryData[0].segs;
|
|
62321
62543
|
ic.domainid2ig2kabat[domainid] = queryData[0].ig2kabat;
|
|
62322
62544
|
ic.domainid2ig2imgt[domainid] = queryData[0].ig2imgt;
|
|
62323
62545
|
}
|
|
62324
62546
|
}
|
|
62325
62547
|
|
|
62548
|
+
if(bRound1) {
|
|
62549
|
+
if(!me.bNode) console.log("Start round 2 alignment with the reference culsters " + JSON.stringify(ic.domainid2refpdbname));
|
|
62550
|
+
|
|
62551
|
+
// start round2
|
|
62552
|
+
let ajaxArray = [];
|
|
62553
|
+
let domainidpairArray3 = [];
|
|
62554
|
+
let urltmalign = me.htmlCls.baseUrl + "tmalign/tmalign.cgi";
|
|
62555
|
+
for(let domainid in ic.domainid2refpdbname) {
|
|
62556
|
+
let pdbAjaxArray = [];
|
|
62557
|
+
let refpdbname = ic.domainid2refpdbname[domainid];
|
|
62558
|
+
let pdbid = domainid.substr(0, domainid.indexOf('_'));
|
|
62559
|
+
|
|
62560
|
+
if(ic.refpdbHash.hasOwnProperty(pdbid)) {
|
|
62561
|
+
// use itself as the ref structure
|
|
62562
|
+
refpdbname = pdbid;
|
|
62563
|
+
|
|
62564
|
+
if(!me.bNode) console.log("Adjusted refpdbname for domainid " + domainid + ": " + refpdbname);
|
|
62565
|
+
}
|
|
62566
|
+
|
|
62567
|
+
for(let k = 0, kl = ic.refpdbHash[refpdbname].length; k < kl; ++k) {
|
|
62568
|
+
let urlpdb = me.htmlCls.baseUrl + "mmcifparser/mmcifparser.cgi?refpdbid=" + ic.refpdbHash[refpdbname][k];
|
|
62569
|
+
|
|
62570
|
+
let pdbAjax = me.getAjaxPromise(urlpdb, 'text');
|
|
62571
|
+
|
|
62572
|
+
pdbAjaxArray.push(pdbAjax);
|
|
62573
|
+
}
|
|
62574
|
+
|
|
62575
|
+
let allPromise2 = Promise.allSettled(pdbAjaxArray);
|
|
62576
|
+
ic.pdbDataArray = await allPromise2;
|
|
62577
|
+
|
|
62578
|
+
let pdb_target = ic.domainid2pdb[domainid];
|
|
62579
|
+
for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
|
|
62580
|
+
let struct2 = ic.defaultPdbId + index;
|
|
62581
|
+
let pdb_query = ic.pdbDataArray[index].value; //[0];
|
|
62582
|
+
let header = 'HEADER ' + struct2 + '\n';
|
|
62583
|
+
pdb_query = header + pdb_query;
|
|
62584
|
+
|
|
62585
|
+
let dataObj = {'pdb_query': pdb_query, 'pdb_target': pdb_target, "queryid": ic.refpdbHash[refpdbname][index]};
|
|
62586
|
+
let alignAjax = me.getAjaxPostPromise(urltmalign, dataObj);
|
|
62587
|
+
ajaxArray.push(alignAjax);
|
|
62588
|
+
|
|
62589
|
+
//domainidpairArray3.push(domainid + "," + refpdbname);
|
|
62590
|
+
domainidpairArray3.push(domainid + "," + ic.refpdbHash[refpdbname][index]);
|
|
62591
|
+
}
|
|
62592
|
+
}
|
|
62593
|
+
|
|
62594
|
+
let dataArray3 = [];
|
|
62595
|
+
let allPromise = Promise.allSettled(ajaxArray);
|
|
62596
|
+
dataArray3 = await allPromise;
|
|
62597
|
+
|
|
62598
|
+
await thisClass.parseAlignData(dataArray3, domainidpairArray3);
|
|
62599
|
+
|
|
62600
|
+
// end of round 2
|
|
62601
|
+
return;
|
|
62602
|
+
}
|
|
62603
|
+
|
|
62326
62604
|
// combine domainid into chainid
|
|
62327
|
-
for(let domainid in ic.
|
|
62605
|
+
for(let domainid in ic.domainid2refpdbname) {
|
|
62328
62606
|
let chainid = domainid.split('-')[0];
|
|
62329
|
-
if(!ic.
|
|
62330
|
-
ic.
|
|
62607
|
+
if(!ic.chainid2refpdbname.hasOwnProperty(chainid)) ic.chainid2refpdbname[chainid] = [];
|
|
62608
|
+
ic.chainid2refpdbname[chainid].push(ic.domainid2refpdbname[domainid]);
|
|
62331
62609
|
}
|
|
62332
62610
|
|
|
62333
62611
|
// combine domainid into chainid
|
|
@@ -62343,16 +62621,15 @@ if(!me.bNode) console.log(domainid + ' TM-score: ' + domainid2score[domainid] +
|
|
|
62343
62621
|
if(!ic.chainsMapping) ic.chainsMapping = {};
|
|
62344
62622
|
for(let chainid in chainid2segs) {
|
|
62345
62623
|
let segArray = chainid2segs[chainid];
|
|
62346
|
-
|
|
62347
|
-
|
|
62348
|
-
|
|
62349
|
-
|
|
62350
|
-
|
|
62351
|
-
|
|
62352
|
-
}
|
|
62624
|
+
|
|
62625
|
+
let chainList = '';
|
|
62626
|
+
for(let i = 0, il = ic.chainid2refpdbname[chainid].length; i < il; ++i) {
|
|
62627
|
+
chainList += ic.chainid2refpdbname[chainid][i] + " ";
|
|
62628
|
+
}
|
|
62629
|
+
if(!me.bNode) console.log("The reference PDB(s) for chain " + chainid + " are " + chainList);
|
|
62353
62630
|
|
|
62354
62631
|
let prevStrand;
|
|
62355
|
-
let bCd19 = ic.
|
|
62632
|
+
let bCd19 = ic.chainid2refpdbname[chainid].length == 1 && ic.chainid2refpdbname[chainid][0] == 'CD19_6al5A_human_C2orV-n1';
|
|
62356
62633
|
for(let i = 0, il = segArray.length; i < il; ++i) {
|
|
62357
62634
|
let seg = segArray[i];
|
|
62358
62635
|
let qStart = seg.q_start;
|
|
@@ -62522,6 +62799,10 @@ if(!me.bNode) {
|
|
|
62522
62799
|
await ic.showAnnoCls.showAnnotations();
|
|
62523
62800
|
ic.annotationCls.setAnnoViewAndDisplay('detailed view');
|
|
62524
62801
|
}
|
|
62802
|
+
|
|
62803
|
+
rmStrandFromRefnumlabel(refnumLabel) {
|
|
62804
|
+
return refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').replace(/\+/g, '').replace(/\-/g, '').substr(1); // C', C''
|
|
62805
|
+
}
|
|
62525
62806
|
}
|
|
62526
62807
|
|
|
62527
62808
|
/**
|
|
@@ -62547,18 +62828,35 @@ class Scap {
|
|
|
62547
62828
|
}
|
|
62548
62829
|
}
|
|
62549
62830
|
|
|
62550
|
-
adjust2DWidth(id) { let ic = this.icn3d
|
|
62551
|
-
let halfWidth = 125;
|
|
62831
|
+
adjust2DWidth(id) { let ic = this.icn3d; ic.icn3dui;
|
|
62552
62832
|
id = ic.pre + id;
|
|
62553
|
-
|
|
62833
|
+
/*
|
|
62554
62834
|
let height =($("#" + ic.pre + 'dl_selectannotations').hasClass("ui-dialog-content")) ? $("#" + ic.pre + 'dl_selectannotations').dialog( "option", "height") : me.htmlCls.HEIGHT;
|
|
62555
62835
|
let width =($("#" + ic.pre + 'dl_selectannotations').hasClass("ui-dialog-content")) ? halfWidth * 2 : me.htmlCls.WIDTH * 0.5;
|
|
62556
62836
|
|
|
62557
62837
|
$("#" + id).dialog( "option", "width", width );
|
|
62558
62838
|
$("#" + id).dialog( "option", "height", height);
|
|
62559
|
-
let position = { my: "left-" + halfWidth + " top+" + me.htmlCls.MENU_HEIGHT, at: "right top", of: "#" + ic.pre + "viewer", collision: "none" }
|
|
62839
|
+
let position = { my: "left-" + halfWidth + " top+" + me.htmlCls.MENU_HEIGHT, at: "right top", of: "#" + ic.pre + "viewer", collision: "none" }
|
|
62560
62840
|
|
|
62561
|
-
|
|
62841
|
+
$("#" + id).dialog( "option", "position", position );
|
|
62842
|
+
*/
|
|
62843
|
+
|
|
62844
|
+
let width, height, top;
|
|
62845
|
+
|
|
62846
|
+
if($("#" + ic.pre + 'dl_selectannotations').hasClass("ui-dialog-content")) {
|
|
62847
|
+
width = $("#" + ic.pre + 'dl_selectannotations').dialog( "option", "width");
|
|
62848
|
+
height = $("#" + ic.pre + 'dl_selectannotations').dialog( "option", "height") * 0.5;
|
|
62849
|
+
top = height;
|
|
62850
|
+
|
|
62851
|
+
$("#" + ic.pre + "dl_selectannotations").dialog( "option", "height", height);
|
|
62852
|
+
|
|
62853
|
+
$("#" + id).dialog( "option", "width", width );
|
|
62854
|
+
$("#" + id).dialog( "option", "height", height);
|
|
62855
|
+
|
|
62856
|
+
let position = { my: "left top", at: "right top+" + top, of: "#" + ic.pre + "viewer", collision: "none" };
|
|
62857
|
+
|
|
62858
|
+
$("#" + id).dialog( "option", "position", position );
|
|
62859
|
+
}
|
|
62562
62860
|
}
|
|
62563
62861
|
|
|
62564
62862
|
async retrieveScap(snp, bInteraction, bPdb) { let ic = this.icn3d, me = ic.icn3dui;
|