icn3d 3.25.11 → 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 +424 -149
- package/icn3d.min.js +3 -3
- package/icn3d.module.js +424 -149
- package/package.json +1 -1
package/icn3d.module.js
CHANGED
|
@@ -12681,7 +12681,7 @@ class Events {
|
|
|
12681
12681
|
async searchSeq() { let me = this.icn3dui, ic = me.icn3d, thisClass = this;
|
|
12682
12682
|
let select = $("#" + me.pre + "search_seq").val();
|
|
12683
12683
|
if(isNaN(select) && select.indexOf('$') == -1 && select.indexOf('.') == -1 && select.indexOf(':') == -1
|
|
12684
|
-
&& select.indexOf('
|
|
12684
|
+
&& select.indexOf('@') == -1) {
|
|
12685
12685
|
select = ':' + select;
|
|
12686
12686
|
}
|
|
12687
12687
|
let commandname = select.replace(/\s+/g, '_');
|
|
@@ -15117,6 +15117,22 @@ class Events {
|
|
|
15117
15117
|
thisClass.setLogCmd('define coil sets | chain ' + chainid, true);
|
|
15118
15118
|
});
|
|
15119
15119
|
|
|
15120
|
+
$(document).on("click", ".icn3d-igstrandsets", function(e) { let ic = me.icn3d;
|
|
15121
|
+
e.stopImmediatePropagation();
|
|
15122
|
+
//e.preventDefault();
|
|
15123
|
+
let chainid = $(this).attr('chainid');
|
|
15124
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igstrand');
|
|
15125
|
+
thisClass.setLogCmd('define igstrand sets | chain ' + chainid, true);
|
|
15126
|
+
});
|
|
15127
|
+
|
|
15128
|
+
$(document).on("click", ".icn3d-igloopsets", function(e) { let ic = me.icn3d;
|
|
15129
|
+
e.stopImmediatePropagation();
|
|
15130
|
+
//e.preventDefault();
|
|
15131
|
+
let chainid = $(this).attr('chainid');
|
|
15132
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igloop');
|
|
15133
|
+
thisClass.setLogCmd('define igloop sets | chain ' + chainid, true);
|
|
15134
|
+
});
|
|
15135
|
+
|
|
15120
15136
|
me.myEventCls.onIds("#" + me.pre + "deletesets", "click", function(e) { let ic = me.icn3d;
|
|
15121
15137
|
ic.definedSetsCls.deleteSelectedSets();
|
|
15122
15138
|
thisClass.setLogCmd("delete selected sets", true);
|
|
@@ -35588,7 +35604,7 @@ class SetColor {
|
|
|
35588
35604
|
// color = me.parasCls.thr(me.htmlCls.GREYB);
|
|
35589
35605
|
// }
|
|
35590
35606
|
// else {
|
|
35591
|
-
let refnumStr =
|
|
35607
|
+
let refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
35592
35608
|
let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
|
|
35593
35609
|
color = ic.showSeqCls.getRefnumColor(currStrand);
|
|
35594
35610
|
|
|
@@ -35624,7 +35640,7 @@ class SetColor {
|
|
|
35624
35640
|
color = me.parasCls.thr(me.htmlCls.GREYB);
|
|
35625
35641
|
}
|
|
35626
35642
|
else {
|
|
35627
|
-
let refnumStr =
|
|
35643
|
+
let refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
35628
35644
|
let currStrand = refnumLabel.replace(new RegExp(refnumStr,'g'), '');
|
|
35629
35645
|
color = ic.showSeqCls.getProtodomainColor(currStrand);
|
|
35630
35646
|
|
|
@@ -40752,7 +40768,7 @@ class AddTrack {
|
|
|
40752
40768
|
++helixCnt;
|
|
40753
40769
|
|
|
40754
40770
|
if(Object.keys(selectedResidues).length > 0) {
|
|
40755
|
-
setName = currName + 'H' + helixCnt + ')';
|
|
40771
|
+
setName = currName + 'H' + helixCnt.toString().padStart(2, '0') + ')';
|
|
40756
40772
|
if(type == 'coil') {
|
|
40757
40773
|
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40758
40774
|
if(!bUnion) bUnion = true;
|
|
@@ -40763,13 +40779,13 @@ class AddTrack {
|
|
|
40763
40779
|
|
|
40764
40780
|
//zero =(index < 10) ? '0' : '';
|
|
40765
40781
|
//currName = chainid + zero + index + '_H' + helixCnt;
|
|
40766
|
-
currName = chainid + '_H' + helixCnt;
|
|
40782
|
+
currName = chainid + '_H' + helixCnt.toString().padStart(2, '0');
|
|
40767
40783
|
selectedResidues[residueid] = 1;
|
|
40768
40784
|
|
|
40769
40785
|
if(atom.ssend) {
|
|
40770
40786
|
//zero =(index < 9) ? '0' : '';
|
|
40771
40787
|
//prevName = chainid + zero +(index+1) + '_L(H' + helixCnt;
|
|
40772
|
-
prevName = chainid + '_C(H' + helixCnt;
|
|
40788
|
+
prevName = chainid + '_C(H' + helixCnt.toString().padStart(2, '0');
|
|
40773
40789
|
if(type == 'helix') {
|
|
40774
40790
|
ic.selectionCls.selectResidueList(selectedResidues, currName, currName, bUnion, bUpdateHighlight);
|
|
40775
40791
|
if(!bUnion) bUnion = true;
|
|
@@ -40782,7 +40798,7 @@ class AddTrack {
|
|
|
40782
40798
|
++sheetCnt;
|
|
40783
40799
|
|
|
40784
40800
|
if(Object.keys(selectedResidues).length > 0) {
|
|
40785
|
-
setName = currName + 'S' + sheetCnt + ')';
|
|
40801
|
+
setName = currName + 'S' + sheetCnt.toString().padStart(2, '0') + ')';
|
|
40786
40802
|
if(type == 'coil') {
|
|
40787
40803
|
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40788
40804
|
if(!bUnion) bUnion = true;
|
|
@@ -40793,13 +40809,13 @@ class AddTrack {
|
|
|
40793
40809
|
|
|
40794
40810
|
//zero =(index < 10) ? '0' : '';
|
|
40795
40811
|
//currName = chainid + zero + index + '_S' + sheetCnt;
|
|
40796
|
-
currName = chainid + '_S' + sheetCnt;
|
|
40812
|
+
currName = chainid + '_S' + sheetCnt.toString().padStart(2, '0');
|
|
40797
40813
|
selectedResidues[residueid] = 1;
|
|
40798
40814
|
|
|
40799
40815
|
if(atom.ssend) {
|
|
40800
40816
|
//zero =(index < 9) ? '0' : '';
|
|
40801
40817
|
//prevName = chainid + zero +(index+1) + '_L(S' + sheetCnt;
|
|
40802
|
-
prevName = chainid + '_C(S' + sheetCnt;
|
|
40818
|
+
prevName = chainid + '_C(S' + sheetCnt.toString().padStart(2, '0');
|
|
40803
40819
|
if(type == 'sheet') {
|
|
40804
40820
|
ic.selectionCls.selectResidueList(selectedResidues, currName, currName, bUnion, bUpdateHighlight);
|
|
40805
40821
|
if(!bUnion) bUnion = true;
|
|
@@ -40822,6 +40838,90 @@ class AddTrack {
|
|
|
40822
40838
|
}
|
|
40823
40839
|
}
|
|
40824
40840
|
|
|
40841
|
+
// type: igstrand, igloop
|
|
40842
|
+
defineIgstrand(chainid, type) { let ic = this.icn3d, me = ic.icn3dui;
|
|
40843
|
+
if(!$('#' + ic.pre + 'dl_definedsets').hasClass('ui-dialog-content') || !$('#' + ic.pre + 'dl_definedsets').dialog( 'isOpen' )) {
|
|
40844
|
+
me.htmlCls.dialogCls.openDlg('dl_definedsets', 'Select sets');
|
|
40845
|
+
$("#" + ic.pre + "atomsCustom").resizable();
|
|
40846
|
+
}
|
|
40847
|
+
|
|
40848
|
+
let selectedResidues = {};
|
|
40849
|
+
let bUnion = false, bUpdateHighlight = true;
|
|
40850
|
+
|
|
40851
|
+
let strandCnt = 0, loopCnt = 0;
|
|
40852
|
+
let setName, currStrand, prevStrand, prevStrandReal, currType, prevType;
|
|
40853
|
+
|
|
40854
|
+
// clear selection
|
|
40855
|
+
ic.hAtoms = {};
|
|
40856
|
+
|
|
40857
|
+
let bStart = false;
|
|
40858
|
+
|
|
40859
|
+
for(let i = 0, il = ic.chainsSeq[chainid].length; i < il; ++i) {
|
|
40860
|
+
let currResi = ic.chainsSeq[chainid][i].resi;
|
|
40861
|
+
let resid = chainid + '_' + currResi;
|
|
40862
|
+
|
|
40863
|
+
if(!ic.residues.hasOwnProperty(resid) ) continue;
|
|
40864
|
+
|
|
40865
|
+
let refnumLabel, refnumStr;
|
|
40866
|
+
refnumLabel = ic.resid2refnum[resid];
|
|
40867
|
+
if(!refnumLabel) continue;
|
|
40868
|
+
|
|
40869
|
+
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
40870
|
+
currStrand = refnumLabel.replace(refnumStr, '');
|
|
40871
|
+
|
|
40872
|
+
if(ic.residIgLoop.hasOwnProperty(resid)) {
|
|
40873
|
+
currType = 'igloop';
|
|
40874
|
+
}
|
|
40875
|
+
else {
|
|
40876
|
+
currType = 'igstrand';
|
|
40877
|
+
}
|
|
40878
|
+
|
|
40879
|
+
if(bStart && currType != prevType && Object.keys(selectedResidues).length > 0) {
|
|
40880
|
+
if(prevType == 'igstrand') {
|
|
40881
|
+
++strandCnt;
|
|
40882
|
+
setName = 'Strand-' + prevStrand + '-' + chainid + '-' + strandCnt.toString().padStart(3, '0');
|
|
40883
|
+
setName = setName.replace(/'/g, '`');
|
|
40884
|
+
if(type == 'igstrand') {
|
|
40885
|
+
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40886
|
+
if(!bUnion) bUnion = true;
|
|
40887
|
+
}
|
|
40888
|
+
prevStrandReal = prevStrand;
|
|
40889
|
+
}
|
|
40890
|
+
else if(prevType == 'igloop') {
|
|
40891
|
+
++loopCnt;
|
|
40892
|
+
setName = 'Loop-' + prevStrandReal + '_' + currStrand + '-' + chainid + '-' + loopCnt.toString().padStart(3, '0');
|
|
40893
|
+
setName = setName.replace(/'/g, '`');
|
|
40894
|
+
if(type == 'igloop') {
|
|
40895
|
+
ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40896
|
+
if(!bUnion) bUnion = true;
|
|
40897
|
+
}
|
|
40898
|
+
}
|
|
40899
|
+
|
|
40900
|
+
selectedResidues = {};
|
|
40901
|
+
}
|
|
40902
|
+
|
|
40903
|
+
selectedResidues[resid] = 1;
|
|
40904
|
+
|
|
40905
|
+
prevStrand = currStrand;
|
|
40906
|
+
prevType = currType;
|
|
40907
|
+
|
|
40908
|
+
bStart = true;
|
|
40909
|
+
} // for loop
|
|
40910
|
+
|
|
40911
|
+
if(prevType == 'igstrand') {
|
|
40912
|
+
++strandCnt;
|
|
40913
|
+
setName = 'Strand-' + prevStrand + '-' + chainid + '-' + strandCnt.toString().padStart(3, '0');
|
|
40914
|
+
setName = setName.replace(/'/g, '`');
|
|
40915
|
+
if(type == 'igstrand') ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40916
|
+
}
|
|
40917
|
+
else if(prevType == 'igloop') {
|
|
40918
|
+
++loopCnt;
|
|
40919
|
+
setName = 'Loop-' + prevStrandReal + '_' + currStrand + '-' + chainid + '-' + loopCnt.toString().padStart(3, '0');
|
|
40920
|
+
setName = setName.replace(/'/g, '`');
|
|
40921
|
+
if(type == 'igloop') ic.selectionCls.selectResidueList(selectedResidues, setName, setName, bUnion, bUpdateHighlight);
|
|
40922
|
+
}
|
|
40923
|
+
}
|
|
40924
|
+
|
|
40825
40925
|
simplifyText(text) { let ic = this.icn3d; ic.icn3dui;
|
|
40826
40926
|
let out = ''; // 1-based text positions
|
|
40827
40927
|
let bFoundText = false;
|
|
@@ -41831,6 +41931,11 @@ class ShowAnno {
|
|
|
41831
41931
|
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) + " "
|
|
41832
41932
|
+ 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) + " "
|
|
41833
41933
|
+ 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);
|
|
41934
|
+
|
|
41935
|
+
if(ic.bShowRefnum && ic.chainid2refpdbname.hasOwnProperty(chnid)) {
|
|
41936
|
+
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) + " "
|
|
41937
|
+
+ 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);
|
|
41938
|
+
}
|
|
41834
41939
|
$("#" + ic.pre + "dl_annotations").append(chainHtml);
|
|
41835
41940
|
//let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'domain', 'site', 'ptm', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
|
|
41836
41941
|
let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'site', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'custom', 'interaction'];
|
|
@@ -42724,7 +42829,7 @@ class ShowSeq {
|
|
|
42724
42829
|
html += '</div>';
|
|
42725
42830
|
html3 += '</div></div>';
|
|
42726
42831
|
}
|
|
42727
|
-
else if(ic.bShowRefnum && ic.
|
|
42832
|
+
else if(ic.bShowRefnum && ic.chainid2refpdbname.hasOwnProperty(chnid)) {
|
|
42728
42833
|
let result = this.showRefNum(giSeq, chnid);
|
|
42729
42834
|
html += result.html;
|
|
42730
42835
|
html3 += result.html3;
|
|
@@ -42767,10 +42872,10 @@ class ShowSeq {
|
|
|
42767
42872
|
let html = '', html3 = '';
|
|
42768
42873
|
|
|
42769
42874
|
let chainList = '';
|
|
42770
|
-
if(!ic.
|
|
42875
|
+
if(!ic.chainid2refpdbname[chnid]) return {html: html, html3: html3};
|
|
42771
42876
|
|
|
42772
|
-
for(let i = 0, il = ic.
|
|
42773
|
-
chainList += ic.
|
|
42877
|
+
for(let i = 0, il = ic.chainid2refpdbname[chnid].length; i < il; ++i) {
|
|
42878
|
+
chainList += ic.chainid2refpdbname[chnid][i] + " ";
|
|
42774
42879
|
}
|
|
42775
42880
|
|
|
42776
42881
|
let refStruTitle = (chainList) ? "based on " + chainList : "";
|
|
@@ -42831,13 +42936,23 @@ class ShowSeq {
|
|
|
42831
42936
|
|
|
42832
42937
|
// sometimes one chain may have several Ig domains,set an index for each IgDomain
|
|
42833
42938
|
let index = 1, bStart = false;
|
|
42834
|
-
|
|
42939
|
+
|
|
42940
|
+
if(!bCustom && !kabat_or_imgt) {
|
|
42941
|
+
// reset ic.residIgLoop for the current selection, which could be the second round of ref num assignment
|
|
42942
|
+
let residHash = ic.firstAtomObjCls.getResiduesFromAtoms(ic.hAtoms);
|
|
42943
|
+
for(let resid in residHash) {
|
|
42944
|
+
// not in loop any more if you assign ref numbers multiple times
|
|
42945
|
+
delete ic.residIgLoop[resid];
|
|
42946
|
+
}
|
|
42947
|
+
}
|
|
42948
|
+
|
|
42835
42949
|
// 1. get the range of each strand excluding loops
|
|
42836
42950
|
let strandArray = [], strandHash = {}, strandCnt = 0, resCnt = 0, resCntBfAnchor = 0, resCntAtAnchor = 0;
|
|
42837
42951
|
if(!bCustom && !kabat_or_imgt) {
|
|
42838
42952
|
for(let i = 0, il = giSeq.length; i < il; ++i, ++resCnt, ++resCntBfAnchor, ++resCntAtAnchor) {
|
|
42839
42953
|
let currResi = ic.ParserUtilsCls.getResi(chnid, i);
|
|
42840
42954
|
let residueid = chnid + '_' + currResi;
|
|
42955
|
+
|
|
42841
42956
|
refnumLabel = ic.resid2refnum[residueid];
|
|
42842
42957
|
|
|
42843
42958
|
let firstChar = (refnumLabel) ? refnumLabel.substr(0,1) : ' ';
|
|
@@ -42851,7 +42966,7 @@ class ShowSeq {
|
|
|
42851
42966
|
}
|
|
42852
42967
|
|
|
42853
42968
|
if(refnumLabel) {
|
|
42854
|
-
refnumStr_ori =
|
|
42969
|
+
refnumStr_ori = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
42855
42970
|
currStrand = refnumLabel.replace(new RegExp(refnumStr_ori,'g'), '');
|
|
42856
42971
|
refnumStr_ori.substr(0, 1);
|
|
42857
42972
|
|
|
@@ -42959,7 +43074,7 @@ class ShowSeq {
|
|
|
42959
43074
|
currStrand = strandArray[strandCnt].strand;
|
|
42960
43075
|
|
|
42961
43076
|
if(refnumLabel) {
|
|
42962
|
-
refnumStr =
|
|
43077
|
+
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
42963
43078
|
currRefnum = parseInt(refnumStr);
|
|
42964
43079
|
refnumLabelNoPostfix = currStrand + currRefnum;
|
|
42965
43080
|
|
|
@@ -43041,7 +43156,7 @@ class ShowSeq {
|
|
|
43041
43156
|
}
|
|
43042
43157
|
else if(parseInt(currResi) >= parseInt(strandArray[strandCnt].startResi) && parseInt(currResi) <= parseInt(strandArray[strandCnt].endResi)) {
|
|
43043
43158
|
// not in loop any more if you assign ref numbers multiple times
|
|
43044
|
-
delete ic.residIgLoop[residueid];
|
|
43159
|
+
//delete ic.residIgLoop[residueid];
|
|
43045
43160
|
|
|
43046
43161
|
bBeforeAstrand = false;
|
|
43047
43162
|
|
|
@@ -43131,7 +43246,7 @@ class ShowSeq {
|
|
|
43131
43246
|
let bHidelabel = false;
|
|
43132
43247
|
|
|
43133
43248
|
if(refnumLabel) {
|
|
43134
|
-
refnumStr_ori =
|
|
43249
|
+
refnumStr_ori = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
43135
43250
|
currStrand = refnumLabel.replace(new RegExp(refnumStr_ori,'g'), '');
|
|
43136
43251
|
currStrand_ori = currStrand;
|
|
43137
43252
|
|
|
@@ -57827,6 +57942,18 @@ class ApplyCommand {
|
|
|
57827
57942
|
|
|
57828
57943
|
ic.addTrackCls.defineSecondary(chainid, 'coil');
|
|
57829
57944
|
}
|
|
57945
|
+
else if(commandOri.indexOf('define igstrand sets') == 0) {
|
|
57946
|
+
let chainStr = commandOri.split(' | ')[1];
|
|
57947
|
+
let chainid = chainStr.split(' ')[1];
|
|
57948
|
+
|
|
57949
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igstrand');
|
|
57950
|
+
}
|
|
57951
|
+
else if(commandOri.indexOf('define igloop sets') == 0) {
|
|
57952
|
+
let chainStr = commandOri.split(' | ')[1];
|
|
57953
|
+
let chainid = chainStr.split(' ')[1];
|
|
57954
|
+
|
|
57955
|
+
ic.addTrackCls.defineIgstrand(chainid, 'igloop');
|
|
57956
|
+
}
|
|
57830
57957
|
else if(commandOri.indexOf('select interaction') == 0) {
|
|
57831
57958
|
let idArray = commandOri.substr(commandOri.lastIndexOf(' ') + 1).split(',');
|
|
57832
57959
|
if(idArray !== null) {
|
|
@@ -60627,6 +60754,7 @@ class SelectByCommand {
|
|
|
60627
60754
|
// $1,2,3: Structure
|
|
60628
60755
|
// .A,B,C: chain
|
|
60629
60756
|
// :5-10,K,chemicals: residues, could be 'proteins', 'nucleotides', 'chemicals', 'ions', and 'water'
|
|
60757
|
+
// :refnum_1250,anchors,strands,loops: reference numbers 1250, anchor residues (e.g., 2250), residues in strands, residues in loops
|
|
60630
60758
|
// @CA,C,C*: atoms
|
|
60631
60759
|
// wild card * can be used to select all
|
|
60632
60760
|
//var currHighlightAtoms = {}
|
|
@@ -60634,7 +60762,7 @@ class SelectByCommand {
|
|
|
60634
60762
|
let dollarPos = commandArray[i].indexOf('$');
|
|
60635
60763
|
let periodPos = commandArray[i].indexOf('.');
|
|
60636
60764
|
let colonPos = commandArray[i].indexOf(':');
|
|
60637
|
-
let colonPos2 = commandArray[i].indexOf('
|
|
60765
|
+
let colonPos2 = commandArray[i].indexOf(':ref_'); // for reference numbers
|
|
60638
60766
|
let atPos = commandArray[i].indexOf('@');
|
|
60639
60767
|
|
|
60640
60768
|
let moleculeStr, chainStr, residueStr, refResStr, atomStrArray;
|
|
@@ -60651,14 +60779,14 @@ class SelectByCommand {
|
|
|
60651
60779
|
if(colonPos === -1 && colonPos2 === -1 ) {
|
|
60652
60780
|
residueStr = "*";
|
|
60653
60781
|
}
|
|
60782
|
+
else if(colonPos2 != -1) {
|
|
60783
|
+
refResStr = testStr.substr(colonPos2 + 5);
|
|
60784
|
+
testStr = testStr.substr(0, colonPos2);
|
|
60785
|
+
}
|
|
60654
60786
|
else if(colonPos != -1) {
|
|
60655
60787
|
residueStr = testStr.substr(colonPos + 1);
|
|
60656
60788
|
testStr = testStr.substr(0, colonPos);
|
|
60657
60789
|
}
|
|
60658
|
-
else if(colonPos2 != -1) {
|
|
60659
|
-
refResStr = testStr.substr(colonPos2 + 1);
|
|
60660
|
-
testStr = testStr.substr(0, colonPos2);
|
|
60661
|
-
}
|
|
60662
60790
|
|
|
60663
60791
|
if(periodPos === -1) {
|
|
60664
60792
|
chainStr = "*";
|
|
@@ -60752,7 +60880,9 @@ class SelectByCommand {
|
|
|
60752
60880
|
else if(residueStrArray[j] === '*') { // all resiues
|
|
60753
60881
|
bAllResidues = true;
|
|
60754
60882
|
}
|
|
60755
|
-
else if(residueStrArray[j] !== 'proteins' && residueStrArray[j] !== 'nucleotides'
|
|
60883
|
+
else if(residueStrArray[j] !== 'proteins' && residueStrArray[j] !== 'nucleotides'
|
|
60884
|
+
&& residueStrArray[j] !== 'chemicals' && residueStrArray[j] !== 'ions' && residueStrArray[j] !== 'water'
|
|
60885
|
+
&& residueStrArray[j] !== 'anchors' && residueStrArray[j] !== 'strands' && residueStrArray[j] !== 'loops') { // residue name
|
|
60756
60886
|
let tmpStr = residueStrArray[j].toUpperCase();
|
|
60757
60887
|
//oneLetterResidue =(residueStrArray[j].length === 1) ? tmpStr : me.utilsCls.residueName2Abbr(tmpStr);
|
|
60758
60888
|
oneLetterResidueStr = tmpStr;
|
|
@@ -60821,6 +60951,16 @@ class SelectByCommand {
|
|
|
60821
60951
|
for(let m in chainAtomHash) {
|
|
60822
60952
|
// residue could also be 'proteins', 'nucleotides', 'chemicals', 'ions', and 'water'
|
|
60823
60953
|
ic.atoms[m].resn.substr(0,3).toUpperCase();
|
|
60954
|
+
let resid = molecule_chain + '_' + ic.atoms[m].resi;
|
|
60955
|
+
let refnumLabel, refnumStr, refnum;
|
|
60956
|
+
if(bRefnum) {
|
|
60957
|
+
refnumLabel = ic.resid2refnum[resid];
|
|
60958
|
+
if(refnumLabel) {
|
|
60959
|
+
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
60960
|
+
refnum = parseInt(refnumStr);
|
|
60961
|
+
}
|
|
60962
|
+
}
|
|
60963
|
+
|
|
60824
60964
|
if(bAllResidues
|
|
60825
60965
|
//|| me.utilsCls.residueName2Abbr(tmpStr) === oneLetterResidue
|
|
60826
60966
|
||(residueStrArray[j] === 'proteins' && m in ic.proteins)
|
|
@@ -60828,32 +60968,23 @@ class SelectByCommand {
|
|
|
60828
60968
|
||(residueStrArray[j] === 'chemicals' && m in ic.chemicals)
|
|
60829
60969
|
||(residueStrArray[j] === 'ions' && m in ic.ions)
|
|
60830
60970
|
||(residueStrArray[j] === 'water' && m in ic.water)
|
|
60971
|
+
||(bRefnum && refnumLabel && residueStrArray[j] === 'anchors' && refnum % 100 == 50)
|
|
60972
|
+
||(bRefnum && refnumLabel && residueStrArray[j] === 'strands' && !ic.residIgLoop.hasOwnProperty(resid))
|
|
60973
|
+
||(bRefnum && refnumLabel && residueStrArray[j] === 'loops' && ic.residIgLoop.hasOwnProperty(resid))
|
|
60831
60974
|
) {
|
|
60832
60975
|
// many duplicates
|
|
60833
60976
|
if(i === 0) {
|
|
60834
|
-
residueHash[
|
|
60977
|
+
residueHash[resid] = 1;
|
|
60835
60978
|
}
|
|
60836
60979
|
else {
|
|
60837
|
-
|
|
60838
|
-
//if(!residueHash.hasOwnProperty(residTmp)) residueHash[residTmp] = undefined;
|
|
60839
|
-
if(!residueHash.hasOwnProperty(residTmp)) delete residueHash[residTmp];
|
|
60980
|
+
if(!residueHash.hasOwnProperty(resid)) delete residueHash[resid];
|
|
60840
60981
|
}
|
|
60841
60982
|
|
|
60842
60983
|
for(let n = 0, nl = atomStrArray.length; n < nl; ++n) {
|
|
60843
60984
|
let atomStr = atomStrArray[n];
|
|
60844
60985
|
|
|
60845
60986
|
atomHash = this.processAtomStr(atomStr, atomHash, i, m);
|
|
60846
|
-
|
|
60847
|
-
// if(atomStr === '*' || atomStr === ic.atoms[m].name) {
|
|
60848
|
-
// if(i === 0) {
|
|
60849
|
-
// atomHash[m] = 1;
|
|
60850
|
-
// }
|
|
60851
|
-
// else {
|
|
60852
|
-
// if(!atomHash.hasOwnProperty(m)) delete atomHash[m];
|
|
60853
|
-
// }
|
|
60854
|
-
// }
|
|
60855
60987
|
}
|
|
60856
|
-
|
|
60857
60988
|
}
|
|
60858
60989
|
} // end for(let m in atomHash) {
|
|
60859
60990
|
|
|
@@ -62970,72 +63101,168 @@ class Dssp {
|
|
|
62970
63101
|
async showIgRefNum() { let ic = this.icn3d, me = ic.icn3dui;
|
|
62971
63102
|
let thisClass = this;
|
|
62972
63103
|
|
|
62973
|
-
// if(ic.
|
|
62974
|
-
// ic.
|
|
62975
|
-
|
|
62976
|
-
// // open sequence view
|
|
62977
|
-
// ic.hAtomsRefnum = {};
|
|
62978
|
-
// ic.bResetAnno = true;
|
|
62979
|
-
// await ic.showAnnoCls.showAnnotations();
|
|
62980
|
-
// ic.annotationCls.setAnnoViewAndDisplay('detailed view');
|
|
63104
|
+
// if(ic.pdbDataArray) {
|
|
63105
|
+
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62981
63106
|
// }
|
|
62982
|
-
|
|
62983
|
-
|
|
62984
|
-
|
|
62985
|
-
|
|
62986
|
-
|
|
62987
|
-
|
|
62988
|
-
|
|
62989
|
-
|
|
62990
|
-
|
|
62991
|
-
|
|
62992
|
-
|
|
62993
|
-
|
|
62994
|
-
|
|
62995
|
-
|
|
62996
|
-
|
|
62997
|
-
|
|
62998
|
-
|
|
62999
|
-
|
|
63000
|
-
|
|
63001
|
-
|
|
63002
|
-
|
|
63003
|
-
|
|
63004
|
-
|
|
63107
|
+
// else {
|
|
63108
|
+
//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'];
|
|
63109
|
+
|
|
63110
|
+
//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'];
|
|
63111
|
+
|
|
63112
|
+
/*
|
|
63113
|
+
// round 1
|
|
63114
|
+
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'];
|
|
63115
|
+
// round 2
|
|
63116
|
+
ic.refpdbHash = {};
|
|
63117
|
+
|
|
63118
|
+
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'];
|
|
63119
|
+
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'];
|
|
63120
|
+
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'];
|
|
63121
|
+
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'];
|
|
63122
|
+
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'];
|
|
63123
|
+
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'];
|
|
63124
|
+
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'];
|
|
63125
|
+
ic.refpdbHash['CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
63126
|
+
ic.refpdbHash['TP47_1o75A_bacteria'] = ['TP47_1o75A_bacteria', 'TEAD1_3kysC_human', 'RBPJ_6py8C_human_Unk-n2', 'CuZnSuperoxideDismutase_1hl5C_human', 'ASF1A_2iijA_human'];
|
|
63127
|
+
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'];
|
|
63128
|
+
*/
|
|
63129
|
+
/*
|
|
63130
|
+
// round 1
|
|
63131
|
+
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'];
|
|
63132
|
+
|
|
63133
|
+
// round 2
|
|
63134
|
+
ic.refpdbHash = {};
|
|
63135
|
+
ic.refpdbHash['NaCaExchanger_2fwuA_dog_n2'] = ['NaCaExchanger_2fwuA_dog_n2', 'ORF7a_1xakA_virus', 'ECadherin_4zt1A_human_n2', 'NaKATPaseTransporterBeta_2zxeB_spurdogshark'];
|
|
63136
|
+
ic.refpdbHash['C3_2qkiD_human_n1'] = ['C3_2qkiD_human_n1', 'RBPJ_6py8C_human_Unk-n1', 'BArrestin1_4jqiA_rat_n1'];
|
|
63137
|
+
ic.refpdbHash['Siglec3_5j0bB_human_C2-n2'] = ['Siglec3_5j0bB_human_C2-n2', 'CD2_1hnfA_human_C2-n2', 'GHR_1axiB_human_FN3-n1'];
|
|
63138
|
+
ic.refpdbHash['ICOS_6x4gA_human_V'] = ['ICOS_6x4gA_human_V', 'Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
63139
|
+
ic.refpdbHash['B2Microglobulin_7phrL_human_C1'] = ['B2Microglobulin_7phrL_human_C1', 'FAB-HEAVY_5esv_C1-n2', 'MHCIa_7phrH_human_C1'];
|
|
63140
|
+
ic.refpdbHash['VTCN1_Q7Z7D3_human_V-n2'] = ['VTCN1_Q7Z7D3_human_V-n2', 'FAB-LIGHT_5esv_C1-n2'];
|
|
63141
|
+
ic.refpdbHash['Contactin1_2ee2A_human_FN3-n9'] = ['Contactin1_2ee2A_human_FN3-n9', 'IL6Rb_1bquB_human_FN3-n3', 'Sidekick2_1wf5A_human_FN3-n7'];
|
|
63142
|
+
ic.refpdbHash['InsulinR_8guyE_human_FN3-n1'] = ['InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2', 'IL6Rb_1bquB_human_FN3-n2'];
|
|
63143
|
+
ic.refpdbHash['JAM1_1nbqA_human_VorIset-n2'] = ['JAM1_1nbqA_human_VorIset-n2', 'Contactin1_3s97C_human_C2-n2'];
|
|
63144
|
+
ic.refpdbHash['LAG3_7tzgD_human_C2-n2'] = ['LAG3_7tzgD_human_C2-n2', 'BTLA_2aw2A_human_Iset'];
|
|
63145
|
+
ic.refpdbHash['Palladin_2dm3A_human_Iset-n1'] = ['Palladin_2dm3A_human_Iset-n1', 'Titin_4uowM_human_Unk-n152'];
|
|
63146
|
+
ic.refpdbHash['PD1_4zqkB_human_V'] = ['PD1_4zqkB_human_V', 'TCRa_6jxrm_human_V-n1', 'FAB-LIGHT_5esv_V-n1'];
|
|
63147
|
+
ic.refpdbHash['CD8a_1cd8A_human_V'] = ['CD8a_1cd8A_human_V', 'FAB-HEAVY_5esv_V-n1', 'VNAR_1t6vN_shark_V'];
|
|
63148
|
+
ic.refpdbHash['VISTA_6oilA_human_V'] = ['VISTA_6oilA_human_V', 'PDL1_4z18B_human_V-n1', 'CD2_1hnfA_human_V-n1'];
|
|
63149
|
+
ic.refpdbHash['LAG3_7tzgD_human_V-n1'] = ['LAG3_7tzgD_human_V-n1'];
|
|
63150
|
+
ic.refpdbHash['TP47_1o75A_bacteria'] = ['TP47_1o75A_bacteria'];
|
|
63151
|
+
ic.refpdbHash['TP34_2o6cA_bacteria'] = ['TP34_2o6cA_bacteria'];
|
|
63152
|
+
ic.refpdbHash['TEAD1_3kysC_human'] = ['TEAD1_3kysC_human', 'CuZnSuperoxideDismutase_1hl5C_human'];
|
|
63153
|
+
ic.refpdbHash['RBPJ_6py8C_human_Unk-n2'] = ['RBPJ_6py8C_human_Unk-n2', 'ASF1A_2iijA_human'];
|
|
63154
|
+
ic.refpdbHash['TCRa_6jxrm_human_C1-n2'] = ['TCRa_6jxrm_human_C1-n2'];
|
|
63155
|
+
ic.refpdbHash['IsdA_2iteA_bacteria'] = ['IsdA_2iteA_bacteria', 'CoAtomerGamma1_1r4xA_human'];
|
|
63156
|
+
ic.refpdbHash['LaminAC_1ifrA_human'] = ['LaminAC_1ifrA_human', 'MPT63_1lmiA_bacteria'];
|
|
63157
|
+
ic.refpdbHash['CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
63158
|
+
*/
|
|
63159
|
+
// round 1
|
|
63160
|
+
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'];
|
|
63161
|
+
|
|
63162
|
+
// round 2
|
|
63163
|
+
ic.refpdbHash = {};
|
|
63164
|
+
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'];
|
|
63165
|
+
ic.refpdbHash['1CD2_1hnfA_human_V-n1'] = ['CD2_1hnfA_human_V-n1', 'Contactin1_3s97C_human_C2-n2', 'LAG3_7tzgD_human_V-n1'];
|
|
63166
|
+
ic.refpdbHash['1LAG3_7tzgD_human_C2-n2'] = ['LAG3_7tzgD_human_C2-n2', 'Siglec3_5j0bB_human_C2-n2'];
|
|
63167
|
+
ic.refpdbHash['1BTLA_2aw2A_human_Iset'] = ['BTLA_2aw2A_human_Iset', 'PD1_4zqkB_human_V', 'TCRa_6jxrm_human_V-n1'];
|
|
63168
|
+
ic.refpdbHash['1JAM1_1nbqA_human_VorIset-n2'] = ['JAM1_1nbqA_human_VorIset-n2', 'PDL1_4z18B_human_V-n1'];
|
|
63169
|
+
ic.refpdbHash['1Palladin_2dm3A_human_Iset-n1'] = ['Palladin_2dm3A_human_Iset-n1', 'Titin_4uowM_human_Unk-n152', 'VISTA_6oilA_human_V'];
|
|
63170
|
+
ic.refpdbHash['1FAB-HEAVY_5esv_C1-n2'] = ['FAB-HEAVY_5esv_C1-n2', 'B2Microglobulin_7phrL_human_C1', 'MHCIa_7phrH_human_C1'];
|
|
63171
|
+
ic.refpdbHash['1FAB-LIGHT_5esv_C1-n2'] = ['FAB-LIGHT_5esv_C1-n2', 'VTCN1_Q7Z7D3_human_V-n2'];
|
|
63172
|
+
ic.refpdbHash['1BArrestin1_4jqiA_rat_n1'] = ['BArrestin1_4jqiA_rat_n1', 'C3_2qkiD_human_n1', 'RBPJ_6py8C_human_Unk-n1'];
|
|
63173
|
+
ic.refpdbHash['1IL6Rb_1bquB_human_FN3-n3'] = ['IL6Rb_1bquB_human_FN3-n3', 'Sidekick2_1wf5A_human_FN3-n7'];
|
|
63174
|
+
ic.refpdbHash['1Contactin1_2ee2A_human_FN3-n9'] = ['Contactin1_2ee2A_human_FN3-n9', 'IL6Rb_1bquB_human_FN3-n2'];
|
|
63175
|
+
ic.refpdbHash['1InsulinR_8guyE_human_FN3-n1'] = ['InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2'];
|
|
63176
|
+
ic.refpdbHash['1NaCaExchanger_2fwuA_dog_n2'] = ['NaCaExchanger_2fwuA_dog_n2', 'NaKATPaseTransporterBeta_2zxeB_spurdogshark'];
|
|
63177
|
+
ic.refpdbHash['1CuZnSuperoxideDismutase_1hl5C_human'] = ['CuZnSuperoxideDismutase_1hl5C_human', 'TEAD1_3kysC_human'];
|
|
63178
|
+
ic.refpdbHash['1CoAtomerGamma1_1r4xA_human'] = ['CoAtomerGamma1_1r4xA_human', 'TP34_2o6cA_bacteria'];
|
|
63179
|
+
ic.refpdbHash['1RBPJ_6py8C_human_Unk-n2'] = ['RBPJ_6py8C_human_Unk-n2', 'TP47_1o75A_bacteria'];
|
|
63180
|
+
|
|
63181
|
+
ic.refpdbHash['1CD2_1hnfA_human_C2-n2'] = ['CD2_1hnfA_human_C2-n2'];
|
|
63182
|
+
ic.refpdbHash['1GHR_1axiB_human_FN3-n1'] = ['GHR_1axiB_human_FN3-n1'];
|
|
63183
|
+
ic.refpdbHash['1Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'] = ['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
63184
|
+
ic.refpdbHash['1ICOS_6x4gA_human_V'] = ['ICOS_6x4gA_human_V'];
|
|
63185
|
+
ic.refpdbHash['1TCRa_6jxrm_human_C1-n2'] = ['TCRa_6jxrm_human_C1-n2'];
|
|
63186
|
+
ic.refpdbHash['1LaminAC_1ifrA_human'] = ['LaminAC_1ifrA_human'];
|
|
63187
|
+
ic.refpdbHash['1IsdA_2iteA_bacteria'] = ['IsdA_2iteA_bacteria'];
|
|
63188
|
+
ic.refpdbHash['1MPT63_1lmiA_bacteria'] = ['MPT63_1lmiA_bacteria'];
|
|
63189
|
+
ic.refpdbHash['1CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
63190
|
+
ic.refpdbHash['1ORF7a_1xakA_virus'] = ['ORF7a_1xakA_virus'];
|
|
63191
|
+
ic.refpdbHash['1ECadherin_4zt1A_human_n2'] = ['ECadherin_4zt1A_human_n2'];
|
|
63192
|
+
ic.refpdbHash['1ASF1A_2iijA_human'] = ['ASF1A_2iijA_human'];
|
|
63193
|
+
|
|
63194
|
+
// use known ref structure
|
|
63195
|
+
ic.refpdbHash['5ESV'] = ['FAB-HEAVY_5esv_V-n1', 'FAB-LIGHT_5esv_V-n1', 'FAB-HEAVY_5esv_C1-n2', 'FAB-LIGHT_5esv_C1-n2'];
|
|
63196
|
+
ic.refpdbHash['8GUY'] = ['InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2'];
|
|
63197
|
+
ic.refpdbHash['6JXR'] = ['TCRa_6jxrm_human_V-n1', 'TCRa_6jxrm_human_C1-n2'];
|
|
63198
|
+
ic.refpdbHash['1HNF'] = ['CD2_1hnfA_human_V-n1', 'CD2_1hnfA_human_C2-n2'];
|
|
63199
|
+
ic.refpdbHash['7TZG'] = ['LAG3_7tzgD_human_V-n1', 'LAG3_7tzgD_human_C2-n2'];
|
|
63200
|
+
ic.refpdbHash['6PY8'] = ['RBPJ_6py8C_human_Unk-n1', 'RBPJ_6py8C_human_Unk-n2'];
|
|
63201
|
+
ic.refpdbHash['1BQU'] = ['IL6Rb_1bquB_human_FN3-n2', 'IL6Rb_1bquB_human_FN3-n3'];
|
|
63202
|
+
|
|
63203
|
+
ic.refpdbHash['1R4X'] = ['CoAtomerGamma1_1r4xA_human'];
|
|
63204
|
+
ic.refpdbHash['6OIL'] = ['VISTA_6oilA_human_V'];
|
|
63205
|
+
ic.refpdbHash['2ZXE'] = ['NaKATPaseTransporterBeta_2zxeB_spurdogshark'];
|
|
63206
|
+
ic.refpdbHash['1I8A'] = ['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
63207
|
+
ic.refpdbHash['2FWU'] = ['NaCaExchanger_2fwuA_dog_n2'];
|
|
63208
|
+
ic.refpdbHash['4JQI'] = ['BArrestin1_4jqiA_rat_n1'];
|
|
63209
|
+
ic.refpdbHash['1NBQ'] = ['JAM1_1nbqA_human_VorIset-n2'];
|
|
63210
|
+
ic.refpdbHash['1O75'] = ['TP47_1o75A_bacteria'];
|
|
63211
|
+
ic.refpdbHash['7PHR'] = ['MHCIa_7phrH_human_C1'];
|
|
63212
|
+
ic.refpdbHash['2IIJ'] = ['ASF1A_2iijA_human'];
|
|
63213
|
+
ic.refpdbHash['4Z18'] = ['PDL1_4z18B_human_V-n1'];
|
|
63214
|
+
ic.refpdbHash['1T6V'] = ['VNAR_1t6vN_shark_V'];
|
|
63215
|
+
ic.refpdbHash['2O6C'] = ['TP34_2o6cA_bacteria'];
|
|
63216
|
+
ic.refpdbHash['3KYS'] = ['TEAD1_3kysC_human'];
|
|
63217
|
+
ic.refpdbHash['7PHR'] = ['B2Microglobulin_7phrL_human_C1'];
|
|
63218
|
+
ic.refpdbHash['2AW2'] = ['BTLA_2aw2A_human_Iset'];
|
|
63219
|
+
ic.refpdbHash['1HL5'] = ['CuZnSuperoxideDismutase_1hl5C_human'];
|
|
63220
|
+
ic.refpdbHash['1WF5'] = ['Sidekick2_1wf5A_human_FN3-n7'];
|
|
63221
|
+
ic.refpdbHash['5J0B'] = ['Siglec3_5j0bB_human_C2-n2'];
|
|
63222
|
+
ic.refpdbHash['1IFR'] = ['LaminAC_1ifrA_human'];
|
|
63223
|
+
ic.refpdbHash['Q7Z7D3'] = ['VTCN1_Q7Z7D3_human_V-n2'];
|
|
63224
|
+
ic.refpdbHash['4ZQK'] = ['PD1_4zqkB_human_V'];
|
|
63225
|
+
ic.refpdbHash['2DM3'] = ['Palladin_2dm3A_human_Iset-n1'];
|
|
63226
|
+
ic.refpdbHash['2ITE'] = ['IsdA_2iteA_bacteria'];
|
|
63227
|
+
ic.refpdbHash['1XAK'] = ['ORF7a_1xakA_virus'];
|
|
63228
|
+
ic.refpdbHash['4ZT1'] = ['ECadherin_4zt1A_human_n2'];
|
|
63229
|
+
ic.refpdbHash['1LMI'] = ['MPT63_1lmiA_bacteria'];
|
|
63230
|
+
ic.refpdbHash['1CD8'] = ['CD8a_1cd8A_human_V'];
|
|
63231
|
+
ic.refpdbHash['3S97'] = ['Contactin1_3s97C_human_C2-n2'];
|
|
63232
|
+
ic.refpdbHash['1AXI'] = ['GHR_1axiB_human_FN3-n1'];
|
|
63233
|
+
ic.refpdbHash['6X4G'] = ['ICOS_6x4gA_human_V'];
|
|
63234
|
+
ic.refpdbHash['2EE2'] = ['Contactin1_2ee2A_human_FN3-n9'];
|
|
63235
|
+
ic.refpdbHash['4UOW'] = ['Titin_4uowM_human_Unk-n152'];
|
|
63236
|
+
ic.refpdbHash['6A15'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
63237
|
+
ic.refpdbHash['2QKI'] = ['C3_2qkiD_human_n1'];
|
|
63238
|
+
|
|
63239
|
+
// if(ic.pdbDataArray) {
|
|
63240
|
+
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
63241
|
+
// }
|
|
63242
|
+
// else {
|
|
63005
63243
|
|
|
63006
|
-
|
|
63244
|
+
let pdbAjaxArray = [];
|
|
63245
|
+
for(let k = 0, kl = ic.refpdbArray.length; k < kl; ++k) {
|
|
63246
|
+
//let urlpdb = me.htmlCls.baseUrl + "icn3d/refpdb/" + ic.refpdbArray[k] + ".pdb";
|
|
63247
|
+
let urlpdb = me.htmlCls.baseUrl + "mmcifparser/mmcifparser.cgi?refpdbid=" + ic.refpdbArray[k];
|
|
63007
63248
|
|
|
63008
|
-
|
|
63009
|
-
}
|
|
63249
|
+
let pdbAjax = me.getAjaxPromise(urlpdb, 'text');
|
|
63010
63250
|
|
|
63011
|
-
|
|
63012
|
-
// if(!me.bNode) {
|
|
63013
|
-
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
63014
|
-
ic.pdbDataArray = await allPromise;
|
|
63015
|
-
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
63016
|
-
// }
|
|
63017
|
-
// else {
|
|
63018
|
-
// ic.pdbDataArray = [];
|
|
63019
|
-
// for(let i = 0, il = pdbAjaxArray.length; i < il; ++i) {
|
|
63020
|
-
// try {
|
|
63021
|
-
// let dataTmp = await pdbAjaxArray[i];
|
|
63022
|
-
// ic.pdbDataArray.push({'value': dataTmp});
|
|
63023
|
-
// }
|
|
63024
|
-
// catch(err) {
|
|
63025
|
-
// ic.pdbDataArray.push({'value': ''});
|
|
63026
|
-
// }
|
|
63027
|
-
// }
|
|
63028
|
-
|
|
63029
|
-
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
63030
|
-
// }
|
|
63031
|
-
// }
|
|
63032
|
-
// catch(err) {
|
|
63033
|
-
// if(!me.bNode) alert("Error in retrieveing reference PDB data...");
|
|
63034
|
-
// //alert("Error in retrieveing reference PDB data...");
|
|
63035
|
-
// return;
|
|
63036
|
-
// }
|
|
63037
|
-
}
|
|
63251
|
+
pdbAjaxArray.push(pdbAjax);
|
|
63038
63252
|
}
|
|
63253
|
+
|
|
63254
|
+
// try {
|
|
63255
|
+
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
63256
|
+
ic.pdbDataArray = await allPromise;
|
|
63257
|
+
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
63258
|
+
// }
|
|
63259
|
+
// catch(err) {
|
|
63260
|
+
// if(!me.bNode) alert("Error in retrieveing reference PDB data...");
|
|
63261
|
+
// //alert("Error in retrieveing reference PDB data...");
|
|
63262
|
+
// return;
|
|
63263
|
+
// }
|
|
63264
|
+
// }
|
|
63265
|
+
// }
|
|
63039
63266
|
}
|
|
63040
63267
|
|
|
63041
63268
|
async parseRefPdbData(dataArray) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -63050,6 +63277,9 @@ class Dssp {
|
|
|
63050
63277
|
|
|
63051
63278
|
// if(!ic.resid2domainid) ic.resid2domainid = {};
|
|
63052
63279
|
ic.resid2domainid = {};
|
|
63280
|
+
ic.domainid2pdb = {};
|
|
63281
|
+
|
|
63282
|
+
let minResidues = 20;
|
|
63053
63283
|
|
|
63054
63284
|
for(let i = 0, il = struArray.length; i < il; ++i) {
|
|
63055
63285
|
let struct = struArray[i];
|
|
@@ -63060,7 +63290,7 @@ class Dssp {
|
|
|
63060
63290
|
|
|
63061
63291
|
if(!ic.proteins.hasOwnProperty(ic.firstAtomObjCls.getFirstAtomObj(ic.chains[chainid]).serial)
|
|
63062
63292
|
&& !ic.proteins.hasOwnProperty(ic.firstAtomObjCls.getMiddleAtomObj(ic.chains[chainid]).serial)) continue;
|
|
63063
|
-
if(ic.chainsSeq[chainid].length <
|
|
63293
|
+
if(ic.chainsSeq[chainid].length < minResidues) continue; // peptide
|
|
63064
63294
|
|
|
63065
63295
|
let currAtoms = me.hashUtilsCls.intHash(ic.chains[chainid], ic.hAtoms);
|
|
63066
63296
|
if(Object.keys(currAtoms).length == 0) continue;
|
|
@@ -63077,11 +63307,6 @@ class Dssp {
|
|
|
63077
63307
|
//domainAtomsArray.push(ic.chains[chainid]);
|
|
63078
63308
|
domainAtomsArray.push(currAtoms);
|
|
63079
63309
|
|
|
63080
|
-
// for(let n = 0, nl = ic.chainsSeq[chainid].length; n < nl; ++n) {
|
|
63081
|
-
// let resid = chainid + '_' + ic.chainsSeq[chainid][n].resi;
|
|
63082
|
-
// ic.resid2domainid[resid] = chainid + '-0';
|
|
63083
|
-
// }
|
|
63084
|
-
|
|
63085
63310
|
let residueArray = ic.resid2specCls.atoms2residues(Object.keys(currAtoms));
|
|
63086
63311
|
for(let n = 0, nl = residueArray.length; n < nl; ++n) {
|
|
63087
63312
|
let resid = residueArray[n];
|
|
@@ -63112,6 +63337,7 @@ class Dssp {
|
|
|
63112
63337
|
for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
|
|
63113
63338
|
let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
|
|
63114
63339
|
let domainid = chainid + '-' + k;
|
|
63340
|
+
ic.domainid2pdb[domainid] = pdb_target;
|
|
63115
63341
|
|
|
63116
63342
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
63117
63343
|
let struct2 = ic.defaultPdbId + index;
|
|
@@ -63123,31 +63349,19 @@ class Dssp {
|
|
|
63123
63349
|
let alignAjax = me.getAjaxPostPromise(urltmalign, dataObj);
|
|
63124
63350
|
ajaxArray.push(alignAjax);
|
|
63125
63351
|
|
|
63126
|
-
domainidpairArray.push(domainid + "," + index);
|
|
63352
|
+
domainidpairArray.push(domainid + "," + ic.refpdbArray[index]);
|
|
63127
63353
|
}
|
|
63128
63354
|
}
|
|
63129
63355
|
}
|
|
63130
|
-
|
|
63356
|
+
}
|
|
63131
63357
|
|
|
63132
63358
|
// try {
|
|
63133
63359
|
let dataArray2 = [];
|
|
63134
|
-
|
|
63135
|
-
|
|
63136
|
-
|
|
63137
|
-
|
|
63138
|
-
|
|
63139
|
-
// for(let i = 0, il = ajaxArray.length; i < il; ++i) {
|
|
63140
|
-
// try {
|
|
63141
|
-
// let dataTmp = await ajaxArray[i];
|
|
63142
|
-
// dataArray2.push({'value': dataTmp});
|
|
63143
|
-
// }
|
|
63144
|
-
// catch(err) {
|
|
63145
|
-
// dataArray2.push({'value': []});
|
|
63146
|
-
// }
|
|
63147
|
-
// }
|
|
63148
|
-
// }
|
|
63149
|
-
|
|
63150
|
-
await thisClass.parseAlignData(dataArray2, domainidpairArray);
|
|
63360
|
+
let allPromise = Promise.allSettled(ajaxArray);
|
|
63361
|
+
dataArray2 = await allPromise;
|
|
63362
|
+
|
|
63363
|
+
let bRound1 = true;
|
|
63364
|
+
await thisClass.parseAlignData(dataArray2, domainidpairArray, bRound1);
|
|
63151
63365
|
|
|
63152
63366
|
/// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
|
|
63153
63367
|
// }
|
|
@@ -63158,7 +63372,7 @@ class Dssp {
|
|
|
63158
63372
|
// }
|
|
63159
63373
|
}
|
|
63160
63374
|
|
|
63161
|
-
async parseAlignData(dataArray, domainidpairArray) { let ic = this.icn3d, me = ic.icn3dui;
|
|
63375
|
+
async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
|
|
63162
63376
|
let thisClass = this;
|
|
63163
63377
|
|
|
63164
63378
|
let tmscoreThreshold = 0.4; //0.5;
|
|
@@ -63166,16 +63380,18 @@ class Dssp {
|
|
|
63166
63380
|
// find the best alignment for each chain
|
|
63167
63381
|
let domainid2score = {}, domainid2segs = {}, chainid2segs = {};
|
|
63168
63382
|
|
|
63169
|
-
if(!ic.
|
|
63170
|
-
if(!ic.
|
|
63383
|
+
if(!ic.chainid2refpdbname) ic.chainid2refpdbname = {};
|
|
63384
|
+
if(!ic.domainid2refpdbname) ic.domainid2refpdbname = {};
|
|
63171
63385
|
if(!ic.domainid2ig2kabat) ic.domainid2ig2kabat = {};
|
|
63172
63386
|
if(!ic.domainid2ig2imgt) ic.domainid2ig2imgt = {};
|
|
63173
63387
|
|
|
63174
|
-
// ic.
|
|
63175
|
-
// ic.
|
|
63388
|
+
// ic.chainid2refpdbname = {};
|
|
63389
|
+
// ic.domainid2refpdbname = {};
|
|
63176
63390
|
// ic.domainid2ig2kabat = {};
|
|
63177
63391
|
// ic.domainid2ig2imgt = {};
|
|
63178
63392
|
|
|
63393
|
+
let minResidues = 20;
|
|
63394
|
+
|
|
63179
63395
|
for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
|
|
63180
63396
|
let queryData = dataArray[i].value; //[0];
|
|
63181
63397
|
|
|
@@ -63185,12 +63401,14 @@ class Dssp {
|
|
|
63185
63401
|
}
|
|
63186
63402
|
|
|
63187
63403
|
if(queryData.length == 0) continue;
|
|
63404
|
+
|
|
63405
|
+
if(queryData[0].score < tmscoreThreshold || queryData[0].num_res < minResidues) continue;
|
|
63188
63406
|
|
|
63189
|
-
|
|
63190
|
-
|
|
63191
|
-
let
|
|
63192
|
-
let
|
|
63193
|
-
domainid.split('-')[0];
|
|
63407
|
+
//let domainid_index = domainidpairArray[i].split(',');
|
|
63408
|
+
//let domainid = domainid_index[0];
|
|
63409
|
+
let domainid = domainidpairArray[i].substr(0, domainidpairArray[i].indexOf(','));
|
|
63410
|
+
let refpdbname = domainidpairArray[i].substr(domainidpairArray[i].indexOf(',') + 1);
|
|
63411
|
+
//let chainid = domainid.split('-')[0];
|
|
63194
63412
|
|
|
63195
63413
|
// Ig-like domains: B (2150, 2150a, 2150b), C (3150, 3250), E (7150, 7250), F (8150, 8250) strands
|
|
63196
63414
|
// Ig domain may require G (7050). But we'll leave that out for now.
|
|
@@ -63219,22 +63437,76 @@ class Dssp {
|
|
|
63219
63437
|
if(!(bBstrand && bCstrand && bEstrand && bFstrand)) continue;
|
|
63220
63438
|
|
|
63221
63439
|
if(!domainid2score.hasOwnProperty(domainid) || queryData[0].score > domainid2score[domainid]) {
|
|
63222
|
-
domainid2score[domainid] = queryData[0].score;
|
|
63223
|
-
if(!me.bNode) console.log(domainid + ' TM-score: ' + domainid2score[domainid] + ' matched ' + ic.refpdbArray[domainid_index[1]]);
|
|
63440
|
+
domainid2score[domainid] = queryData[0].score;
|
|
63224
63441
|
|
|
63225
|
-
|
|
63226
|
-
ic.domainid2index[domainid] = domainid_index[1];
|
|
63442
|
+
ic.domainid2refpdbname[domainid] = refpdbname;
|
|
63227
63443
|
domainid2segs[domainid] = queryData[0].segs;
|
|
63228
63444
|
ic.domainid2ig2kabat[domainid] = queryData[0].ig2kabat;
|
|
63229
63445
|
ic.domainid2ig2imgt[domainid] = queryData[0].ig2imgt;
|
|
63230
63446
|
}
|
|
63231
63447
|
}
|
|
63232
63448
|
|
|
63449
|
+
if(bRound1) {
|
|
63450
|
+
if(!me.bNode) console.log("Start round 2 alignment with the reference culsters " + JSON.stringify(ic.domainid2refpdbname));
|
|
63451
|
+
|
|
63452
|
+
// start round2
|
|
63453
|
+
let ajaxArray = [];
|
|
63454
|
+
let domainidpairArray3 = [];
|
|
63455
|
+
let urltmalign = me.htmlCls.baseUrl + "tmalign/tmalign.cgi";
|
|
63456
|
+
for(let domainid in ic.domainid2refpdbname) {
|
|
63457
|
+
let pdbAjaxArray = [];
|
|
63458
|
+
let refpdbname = ic.domainid2refpdbname[domainid];
|
|
63459
|
+
let pdbid = domainid.substr(0, domainid.indexOf('_'));
|
|
63460
|
+
|
|
63461
|
+
if(ic.refpdbHash.hasOwnProperty(pdbid)) {
|
|
63462
|
+
// use itself as the ref structure
|
|
63463
|
+
refpdbname = pdbid;
|
|
63464
|
+
|
|
63465
|
+
if(!me.bNode) console.log("Adjusted refpdbname for domainid " + domainid + ": " + refpdbname);
|
|
63466
|
+
}
|
|
63467
|
+
|
|
63468
|
+
for(let k = 0, kl = ic.refpdbHash[refpdbname].length; k < kl; ++k) {
|
|
63469
|
+
let urlpdb = me.htmlCls.baseUrl + "mmcifparser/mmcifparser.cgi?refpdbid=" + ic.refpdbHash[refpdbname][k];
|
|
63470
|
+
|
|
63471
|
+
let pdbAjax = me.getAjaxPromise(urlpdb, 'text');
|
|
63472
|
+
|
|
63473
|
+
pdbAjaxArray.push(pdbAjax);
|
|
63474
|
+
}
|
|
63475
|
+
|
|
63476
|
+
let allPromise2 = Promise.allSettled(pdbAjaxArray);
|
|
63477
|
+
ic.pdbDataArray = await allPromise2;
|
|
63478
|
+
|
|
63479
|
+
let pdb_target = ic.domainid2pdb[domainid];
|
|
63480
|
+
for(let index = 0, indexl = ic.pdbDataArray.length; index < indexl; ++index) {
|
|
63481
|
+
let struct2 = ic.defaultPdbId + index;
|
|
63482
|
+
let pdb_query = ic.pdbDataArray[index].value; //[0];
|
|
63483
|
+
let header = 'HEADER ' + struct2 + '\n';
|
|
63484
|
+
pdb_query = header + pdb_query;
|
|
63485
|
+
|
|
63486
|
+
let dataObj = {'pdb_query': pdb_query, 'pdb_target': pdb_target, "queryid": ic.refpdbHash[refpdbname][index]};
|
|
63487
|
+
let alignAjax = me.getAjaxPostPromise(urltmalign, dataObj);
|
|
63488
|
+
ajaxArray.push(alignAjax);
|
|
63489
|
+
|
|
63490
|
+
//domainidpairArray3.push(domainid + "," + refpdbname);
|
|
63491
|
+
domainidpairArray3.push(domainid + "," + ic.refpdbHash[refpdbname][index]);
|
|
63492
|
+
}
|
|
63493
|
+
}
|
|
63494
|
+
|
|
63495
|
+
let dataArray3 = [];
|
|
63496
|
+
let allPromise = Promise.allSettled(ajaxArray);
|
|
63497
|
+
dataArray3 = await allPromise;
|
|
63498
|
+
|
|
63499
|
+
await thisClass.parseAlignData(dataArray3, domainidpairArray3);
|
|
63500
|
+
|
|
63501
|
+
// end of round 2
|
|
63502
|
+
return;
|
|
63503
|
+
}
|
|
63504
|
+
|
|
63233
63505
|
// combine domainid into chainid
|
|
63234
|
-
for(let domainid in ic.
|
|
63506
|
+
for(let domainid in ic.domainid2refpdbname) {
|
|
63235
63507
|
let chainid = domainid.split('-')[0];
|
|
63236
|
-
if(!ic.
|
|
63237
|
-
ic.
|
|
63508
|
+
if(!ic.chainid2refpdbname.hasOwnProperty(chainid)) ic.chainid2refpdbname[chainid] = [];
|
|
63509
|
+
ic.chainid2refpdbname[chainid].push(ic.domainid2refpdbname[domainid]);
|
|
63238
63510
|
}
|
|
63239
63511
|
|
|
63240
63512
|
// combine domainid into chainid
|
|
@@ -63250,16 +63522,15 @@ if(!me.bNode) console.log(domainid + ' TM-score: ' + domainid2score[domainid] +
|
|
|
63250
63522
|
if(!ic.chainsMapping) ic.chainsMapping = {};
|
|
63251
63523
|
for(let chainid in chainid2segs) {
|
|
63252
63524
|
let segArray = chainid2segs[chainid];
|
|
63253
|
-
|
|
63254
|
-
|
|
63255
|
-
|
|
63256
|
-
|
|
63257
|
-
|
|
63258
|
-
|
|
63259
|
-
}
|
|
63525
|
+
|
|
63526
|
+
let chainList = '';
|
|
63527
|
+
for(let i = 0, il = ic.chainid2refpdbname[chainid].length; i < il; ++i) {
|
|
63528
|
+
chainList += ic.chainid2refpdbname[chainid][i] + " ";
|
|
63529
|
+
}
|
|
63530
|
+
if(!me.bNode) console.log("The reference PDB(s) for chain " + chainid + " are " + chainList);
|
|
63260
63531
|
|
|
63261
63532
|
let prevStrand;
|
|
63262
|
-
let bCd19 = ic.
|
|
63533
|
+
let bCd19 = ic.chainid2refpdbname[chainid].length == 1 && ic.chainid2refpdbname[chainid][0] == 'CD19_6al5A_human_C2orV-n1';
|
|
63263
63534
|
for(let i = 0, il = segArray.length; i < il; ++i) {
|
|
63264
63535
|
let seg = segArray[i];
|
|
63265
63536
|
let qStart = seg.q_start;
|
|
@@ -63429,6 +63700,10 @@ if(!me.bNode) {
|
|
|
63429
63700
|
await ic.showAnnoCls.showAnnotations();
|
|
63430
63701
|
ic.annotationCls.setAnnoViewAndDisplay('detailed view');
|
|
63431
63702
|
}
|
|
63703
|
+
|
|
63704
|
+
rmStrandFromRefnumlabel(refnumLabel) {
|
|
63705
|
+
return refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').replace(/\+/g, '').replace(/\-/g, '').substr(1); // C', C''
|
|
63706
|
+
}
|
|
63432
63707
|
}
|
|
63433
63708
|
|
|
63434
63709
|
/**
|