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.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);
|
|
@@ -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'];
|
|
@@ -41823,7 +41928,7 @@ class ShowSeq {
|
|
|
41823
41928
|
html += '</div>';
|
|
41824
41929
|
html3 += '</div></div>';
|
|
41825
41930
|
}
|
|
41826
|
-
else if(ic.bShowRefnum && ic.
|
|
41931
|
+
else if(ic.bShowRefnum && ic.chainid2refpdbname.hasOwnProperty(chnid)) {
|
|
41827
41932
|
let result = this.showRefNum(giSeq, chnid);
|
|
41828
41933
|
html += result.html;
|
|
41829
41934
|
html3 += result.html3;
|
|
@@ -41866,10 +41971,10 @@ class ShowSeq {
|
|
|
41866
41971
|
let html = '', html3 = '';
|
|
41867
41972
|
|
|
41868
41973
|
let chainList = '';
|
|
41869
|
-
if(!ic.
|
|
41974
|
+
if(!ic.chainid2refpdbname[chnid]) return {html: html, html3: html3};
|
|
41870
41975
|
|
|
41871
|
-
for(let i = 0, il = ic.
|
|
41872
|
-
chainList += ic.
|
|
41976
|
+
for(let i = 0, il = ic.chainid2refpdbname[chnid].length; i < il; ++i) {
|
|
41977
|
+
chainList += ic.chainid2refpdbname[chnid][i] + " ";
|
|
41873
41978
|
}
|
|
41874
41979
|
|
|
41875
41980
|
let refStruTitle = (chainList) ? "based on " + chainList : "";
|
|
@@ -41930,13 +42035,23 @@ class ShowSeq {
|
|
|
41930
42035
|
|
|
41931
42036
|
// sometimes one chain may have several Ig domains,set an index for each IgDomain
|
|
41932
42037
|
let index = 1, bStart = false;
|
|
41933
|
-
|
|
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
|
+
|
|
41934
42048
|
// 1. get the range of each strand excluding loops
|
|
41935
42049
|
let strandArray = [], strandHash = {}, strandCnt = 0, resCnt = 0, resCntBfAnchor = 0, resCntAtAnchor = 0;
|
|
41936
42050
|
if(!bCustom && !kabat_or_imgt) {
|
|
41937
42051
|
for(let i = 0, il = giSeq.length; i < il; ++i, ++resCnt, ++resCntBfAnchor, ++resCntAtAnchor) {
|
|
41938
42052
|
let currResi = ic.ParserUtilsCls.getResi(chnid, i);
|
|
41939
42053
|
let residueid = chnid + '_' + currResi;
|
|
42054
|
+
|
|
41940
42055
|
refnumLabel = ic.resid2refnum[residueid];
|
|
41941
42056
|
|
|
41942
42057
|
let firstChar = (refnumLabel) ? refnumLabel.substr(0,1) : ' ';
|
|
@@ -41950,7 +42065,7 @@ class ShowSeq {
|
|
|
41950
42065
|
}
|
|
41951
42066
|
|
|
41952
42067
|
if(refnumLabel) {
|
|
41953
|
-
refnumStr_ori =
|
|
42068
|
+
refnumStr_ori = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
41954
42069
|
currStrand = refnumLabel.replace(new RegExp(refnumStr_ori,'g'), '');
|
|
41955
42070
|
refnumStr_ori.substr(0, 1);
|
|
41956
42071
|
|
|
@@ -42058,7 +42173,7 @@ class ShowSeq {
|
|
|
42058
42173
|
currStrand = strandArray[strandCnt].strand;
|
|
42059
42174
|
|
|
42060
42175
|
if(refnumLabel) {
|
|
42061
|
-
refnumStr =
|
|
42176
|
+
refnumStr = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
42062
42177
|
currRefnum = parseInt(refnumStr);
|
|
42063
42178
|
refnumLabelNoPostfix = currStrand + currRefnum;
|
|
42064
42179
|
|
|
@@ -42140,7 +42255,7 @@ class ShowSeq {
|
|
|
42140
42255
|
}
|
|
42141
42256
|
else if(parseInt(currResi) >= parseInt(strandArray[strandCnt].startResi) && parseInt(currResi) <= parseInt(strandArray[strandCnt].endResi)) {
|
|
42142
42257
|
// not in loop any more if you assign ref numbers multiple times
|
|
42143
|
-
delete ic.residIgLoop[residueid];
|
|
42258
|
+
//delete ic.residIgLoop[residueid];
|
|
42144
42259
|
|
|
42145
42260
|
bBeforeAstrand = false;
|
|
42146
42261
|
|
|
@@ -42230,7 +42345,7 @@ class ShowSeq {
|
|
|
42230
42345
|
let bHidelabel = false;
|
|
42231
42346
|
|
|
42232
42347
|
if(refnumLabel) {
|
|
42233
|
-
refnumStr_ori =
|
|
42348
|
+
refnumStr_ori = ic.refnumCls.rmStrandFromRefnumlabel(refnumLabel);
|
|
42234
42349
|
currStrand = refnumLabel.replace(new RegExp(refnumStr_ori,'g'), '');
|
|
42235
42350
|
currStrand_ori = currStrand;
|
|
42236
42351
|
|
|
@@ -56926,6 +57041,18 @@ class ApplyCommand {
|
|
|
56926
57041
|
|
|
56927
57042
|
ic.addTrackCls.defineSecondary(chainid, 'coil');
|
|
56928
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
|
+
}
|
|
56929
57056
|
else if(commandOri.indexOf('select interaction') == 0) {
|
|
56930
57057
|
let idArray = commandOri.substr(commandOri.lastIndexOf(' ') + 1).split(',');
|
|
56931
57058
|
if(idArray !== null) {
|
|
@@ -59726,6 +59853,7 @@ class SelectByCommand {
|
|
|
59726
59853
|
// $1,2,3: Structure
|
|
59727
59854
|
// .A,B,C: chain
|
|
59728
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
|
|
59729
59857
|
// @CA,C,C*: atoms
|
|
59730
59858
|
// wild card * can be used to select all
|
|
59731
59859
|
//var currHighlightAtoms = {}
|
|
@@ -59733,7 +59861,7 @@ class SelectByCommand {
|
|
|
59733
59861
|
let dollarPos = commandArray[i].indexOf('$');
|
|
59734
59862
|
let periodPos = commandArray[i].indexOf('.');
|
|
59735
59863
|
let colonPos = commandArray[i].indexOf(':');
|
|
59736
|
-
let colonPos2 = commandArray[i].indexOf('
|
|
59864
|
+
let colonPos2 = commandArray[i].indexOf(':ref_'); // for reference numbers
|
|
59737
59865
|
let atPos = commandArray[i].indexOf('@');
|
|
59738
59866
|
|
|
59739
59867
|
let moleculeStr, chainStr, residueStr, refResStr, atomStrArray;
|
|
@@ -59750,14 +59878,14 @@ class SelectByCommand {
|
|
|
59750
59878
|
if(colonPos === -1 && colonPos2 === -1 ) {
|
|
59751
59879
|
residueStr = "*";
|
|
59752
59880
|
}
|
|
59881
|
+
else if(colonPos2 != -1) {
|
|
59882
|
+
refResStr = testStr.substr(colonPos2 + 5);
|
|
59883
|
+
testStr = testStr.substr(0, colonPos2);
|
|
59884
|
+
}
|
|
59753
59885
|
else if(colonPos != -1) {
|
|
59754
59886
|
residueStr = testStr.substr(colonPos + 1);
|
|
59755
59887
|
testStr = testStr.substr(0, colonPos);
|
|
59756
59888
|
}
|
|
59757
|
-
else if(colonPos2 != -1) {
|
|
59758
|
-
refResStr = testStr.substr(colonPos2 + 1);
|
|
59759
|
-
testStr = testStr.substr(0, colonPos2);
|
|
59760
|
-
}
|
|
59761
59889
|
|
|
59762
59890
|
if(periodPos === -1) {
|
|
59763
59891
|
chainStr = "*";
|
|
@@ -59851,7 +59979,9 @@ class SelectByCommand {
|
|
|
59851
59979
|
else if(residueStrArray[j] === '*') { // all resiues
|
|
59852
59980
|
bAllResidues = true;
|
|
59853
59981
|
}
|
|
59854
|
-
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
|
|
59855
59985
|
let tmpStr = residueStrArray[j].toUpperCase();
|
|
59856
59986
|
//oneLetterResidue =(residueStrArray[j].length === 1) ? tmpStr : me.utilsCls.residueName2Abbr(tmpStr);
|
|
59857
59987
|
oneLetterResidueStr = tmpStr;
|
|
@@ -59920,6 +60050,16 @@ class SelectByCommand {
|
|
|
59920
60050
|
for(let m in chainAtomHash) {
|
|
59921
60051
|
// residue could also be 'proteins', 'nucleotides', 'chemicals', 'ions', and 'water'
|
|
59922
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
|
+
|
|
59923
60063
|
if(bAllResidues
|
|
59924
60064
|
//|| me.utilsCls.residueName2Abbr(tmpStr) === oneLetterResidue
|
|
59925
60065
|
||(residueStrArray[j] === 'proteins' && m in ic.proteins)
|
|
@@ -59927,32 +60067,23 @@ class SelectByCommand {
|
|
|
59927
60067
|
||(residueStrArray[j] === 'chemicals' && m in ic.chemicals)
|
|
59928
60068
|
||(residueStrArray[j] === 'ions' && m in ic.ions)
|
|
59929
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))
|
|
59930
60073
|
) {
|
|
59931
60074
|
// many duplicates
|
|
59932
60075
|
if(i === 0) {
|
|
59933
|
-
residueHash[
|
|
60076
|
+
residueHash[resid] = 1;
|
|
59934
60077
|
}
|
|
59935
60078
|
else {
|
|
59936
|
-
|
|
59937
|
-
//if(!residueHash.hasOwnProperty(residTmp)) residueHash[residTmp] = undefined;
|
|
59938
|
-
if(!residueHash.hasOwnProperty(residTmp)) delete residueHash[residTmp];
|
|
60079
|
+
if(!residueHash.hasOwnProperty(resid)) delete residueHash[resid];
|
|
59939
60080
|
}
|
|
59940
60081
|
|
|
59941
60082
|
for(let n = 0, nl = atomStrArray.length; n < nl; ++n) {
|
|
59942
60083
|
let atomStr = atomStrArray[n];
|
|
59943
60084
|
|
|
59944
60085
|
atomHash = this.processAtomStr(atomStr, atomHash, i, m);
|
|
59945
|
-
|
|
59946
|
-
// if(atomStr === '*' || atomStr === ic.atoms[m].name) {
|
|
59947
|
-
// if(i === 0) {
|
|
59948
|
-
// atomHash[m] = 1;
|
|
59949
|
-
// }
|
|
59950
|
-
// else {
|
|
59951
|
-
// if(!atomHash.hasOwnProperty(m)) delete atomHash[m];
|
|
59952
|
-
// }
|
|
59953
|
-
// }
|
|
59954
60086
|
}
|
|
59955
|
-
|
|
59956
60087
|
}
|
|
59957
60088
|
} // end for(let m in atomHash) {
|
|
59958
60089
|
|
|
@@ -62069,72 +62200,168 @@ class Dssp {
|
|
|
62069
62200
|
async showIgRefNum() { let ic = this.icn3d, me = ic.icn3dui;
|
|
62070
62201
|
let thisClass = this;
|
|
62071
62202
|
|
|
62072
|
-
// if(ic.
|
|
62073
|
-
// ic.
|
|
62074
|
-
|
|
62075
|
-
// // open sequence view
|
|
62076
|
-
// ic.hAtomsRefnum = {};
|
|
62077
|
-
// ic.bResetAnno = true;
|
|
62078
|
-
// await ic.showAnnoCls.showAnnotations();
|
|
62079
|
-
// ic.annotationCls.setAnnoViewAndDisplay('detailed view');
|
|
62203
|
+
// if(ic.pdbDataArray) {
|
|
62204
|
+
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62080
62205
|
// }
|
|
62081
|
-
|
|
62082
|
-
|
|
62083
|
-
|
|
62084
|
-
|
|
62085
|
-
|
|
62086
|
-
|
|
62087
|
-
|
|
62088
|
-
|
|
62089
|
-
|
|
62090
|
-
|
|
62091
|
-
|
|
62092
|
-
|
|
62093
|
-
|
|
62094
|
-
|
|
62095
|
-
|
|
62096
|
-
|
|
62097
|
-
|
|
62098
|
-
|
|
62099
|
-
|
|
62100
|
-
|
|
62101
|
-
|
|
62102
|
-
|
|
62103
|
-
|
|
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 {
|
|
62104
62342
|
|
|
62105
|
-
|
|
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];
|
|
62106
62347
|
|
|
62107
|
-
|
|
62108
|
-
}
|
|
62348
|
+
let pdbAjax = me.getAjaxPromise(urlpdb, 'text');
|
|
62109
62349
|
|
|
62110
|
-
|
|
62111
|
-
// if(!me.bNode) {
|
|
62112
|
-
let allPromise = Promise.allSettled(pdbAjaxArray);
|
|
62113
|
-
ic.pdbDataArray = await allPromise;
|
|
62114
|
-
await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62115
|
-
// }
|
|
62116
|
-
// else {
|
|
62117
|
-
// ic.pdbDataArray = [];
|
|
62118
|
-
// for(let i = 0, il = pdbAjaxArray.length; i < il; ++i) {
|
|
62119
|
-
// try {
|
|
62120
|
-
// let dataTmp = await pdbAjaxArray[i];
|
|
62121
|
-
// ic.pdbDataArray.push({'value': dataTmp});
|
|
62122
|
-
// }
|
|
62123
|
-
// catch(err) {
|
|
62124
|
-
// ic.pdbDataArray.push({'value': ''});
|
|
62125
|
-
// }
|
|
62126
|
-
// }
|
|
62127
|
-
|
|
62128
|
-
// await thisClass.parseRefPdbData(ic.pdbDataArray);
|
|
62129
|
-
// }
|
|
62130
|
-
// }
|
|
62131
|
-
// catch(err) {
|
|
62132
|
-
// if(!me.bNode) var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62133
|
-
// //var aaa = 1; //alert("Error in retrieveing reference PDB data...");
|
|
62134
|
-
// return;
|
|
62135
|
-
// }
|
|
62136
|
-
}
|
|
62350
|
+
pdbAjaxArray.push(pdbAjax);
|
|
62137
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
|
+
// }
|
|
62138
62365
|
}
|
|
62139
62366
|
|
|
62140
62367
|
async parseRefPdbData(dataArray) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -62149,6 +62376,9 @@ class Dssp {
|
|
|
62149
62376
|
|
|
62150
62377
|
// if(!ic.resid2domainid) ic.resid2domainid = {};
|
|
62151
62378
|
ic.resid2domainid = {};
|
|
62379
|
+
ic.domainid2pdb = {};
|
|
62380
|
+
|
|
62381
|
+
let minResidues = 20;
|
|
62152
62382
|
|
|
62153
62383
|
for(let i = 0, il = struArray.length; i < il; ++i) {
|
|
62154
62384
|
let struct = struArray[i];
|
|
@@ -62159,7 +62389,7 @@ class Dssp {
|
|
|
62159
62389
|
|
|
62160
62390
|
if(!ic.proteins.hasOwnProperty(ic.firstAtomObjCls.getFirstAtomObj(ic.chains[chainid]).serial)
|
|
62161
62391
|
&& !ic.proteins.hasOwnProperty(ic.firstAtomObjCls.getMiddleAtomObj(ic.chains[chainid]).serial)) continue;
|
|
62162
|
-
if(ic.chainsSeq[chainid].length <
|
|
62392
|
+
if(ic.chainsSeq[chainid].length < minResidues) continue; // peptide
|
|
62163
62393
|
|
|
62164
62394
|
let currAtoms = me.hashUtilsCls.intHash(ic.chains[chainid], ic.hAtoms);
|
|
62165
62395
|
if(Object.keys(currAtoms).length == 0) continue;
|
|
@@ -62176,11 +62406,6 @@ class Dssp {
|
|
|
62176
62406
|
//domainAtomsArray.push(ic.chains[chainid]);
|
|
62177
62407
|
domainAtomsArray.push(currAtoms);
|
|
62178
62408
|
|
|
62179
|
-
// for(let n = 0, nl = ic.chainsSeq[chainid].length; n < nl; ++n) {
|
|
62180
|
-
// let resid = chainid + '_' + ic.chainsSeq[chainid][n].resi;
|
|
62181
|
-
// ic.resid2domainid[resid] = chainid + '-0';
|
|
62182
|
-
// }
|
|
62183
|
-
|
|
62184
62409
|
let residueArray = ic.resid2specCls.atoms2residues(Object.keys(currAtoms));
|
|
62185
62410
|
for(let n = 0, nl = residueArray.length; n < nl; ++n) {
|
|
62186
62411
|
let resid = residueArray[n];
|
|
@@ -62211,6 +62436,7 @@ class Dssp {
|
|
|
62211
62436
|
for(let k = 0, kl = domainAtomsArray.length; k < kl; ++k) {
|
|
62212
62437
|
let pdb_target = ic.saveFileCls.getAtomPDB(domainAtomsArray[k], undefined, undefined, undefined, undefined, struct);
|
|
62213
62438
|
let domainid = chainid + '-' + k;
|
|
62439
|
+
ic.domainid2pdb[domainid] = pdb_target;
|
|
62214
62440
|
|
|
62215
62441
|
for(let index = 0, indexl = dataArray.length; index < indexl; ++index) {
|
|
62216
62442
|
let struct2 = ic.defaultPdbId + index;
|
|
@@ -62222,31 +62448,19 @@ class Dssp {
|
|
|
62222
62448
|
let alignAjax = me.getAjaxPostPromise(urltmalign, dataObj);
|
|
62223
62449
|
ajaxArray.push(alignAjax);
|
|
62224
62450
|
|
|
62225
|
-
domainidpairArray.push(domainid + "," + index);
|
|
62451
|
+
domainidpairArray.push(domainid + "," + ic.refpdbArray[index]);
|
|
62226
62452
|
}
|
|
62227
62453
|
}
|
|
62228
62454
|
}
|
|
62229
|
-
|
|
62455
|
+
}
|
|
62230
62456
|
|
|
62231
62457
|
// try {
|
|
62232
62458
|
let dataArray2 = [];
|
|
62233
|
-
|
|
62234
|
-
|
|
62235
|
-
|
|
62236
|
-
|
|
62237
|
-
|
|
62238
|
-
// for(let i = 0, il = ajaxArray.length; i < il; ++i) {
|
|
62239
|
-
// try {
|
|
62240
|
-
// let dataTmp = await ajaxArray[i];
|
|
62241
|
-
// dataArray2.push({'value': dataTmp});
|
|
62242
|
-
// }
|
|
62243
|
-
// catch(err) {
|
|
62244
|
-
// dataArray2.push({'value': []});
|
|
62245
|
-
// }
|
|
62246
|
-
// }
|
|
62247
|
-
// }
|
|
62248
|
-
|
|
62249
|
-
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);
|
|
62250
62464
|
|
|
62251
62465
|
/// if(ic.deferredRefnum !== undefined) ic.deferredRefnum.resolve();
|
|
62252
62466
|
// }
|
|
@@ -62257,7 +62471,7 @@ class Dssp {
|
|
|
62257
62471
|
// }
|
|
62258
62472
|
}
|
|
62259
62473
|
|
|
62260
|
-
async parseAlignData(dataArray, domainidpairArray) { let ic = this.icn3d, me = ic.icn3dui;
|
|
62474
|
+
async parseAlignData(dataArray, domainidpairArray, bRound1) { let ic = this.icn3d, me = ic.icn3dui;
|
|
62261
62475
|
let thisClass = this;
|
|
62262
62476
|
|
|
62263
62477
|
let tmscoreThreshold = 0.4; //0.5;
|
|
@@ -62265,16 +62479,18 @@ class Dssp {
|
|
|
62265
62479
|
// find the best alignment for each chain
|
|
62266
62480
|
let domainid2score = {}, domainid2segs = {}, chainid2segs = {};
|
|
62267
62481
|
|
|
62268
|
-
if(!ic.
|
|
62269
|
-
if(!ic.
|
|
62482
|
+
if(!ic.chainid2refpdbname) ic.chainid2refpdbname = {};
|
|
62483
|
+
if(!ic.domainid2refpdbname) ic.domainid2refpdbname = {};
|
|
62270
62484
|
if(!ic.domainid2ig2kabat) ic.domainid2ig2kabat = {};
|
|
62271
62485
|
if(!ic.domainid2ig2imgt) ic.domainid2ig2imgt = {};
|
|
62272
62486
|
|
|
62273
|
-
// ic.
|
|
62274
|
-
// ic.
|
|
62487
|
+
// ic.chainid2refpdbname = {};
|
|
62488
|
+
// ic.domainid2refpdbname = {};
|
|
62275
62489
|
// ic.domainid2ig2kabat = {};
|
|
62276
62490
|
// ic.domainid2ig2imgt = {};
|
|
62277
62491
|
|
|
62492
|
+
let minResidues = 20;
|
|
62493
|
+
|
|
62278
62494
|
for(let i = 0, il = domainidpairArray.length; i < il; ++i) {
|
|
62279
62495
|
let queryData = dataArray[i].value; //[0];
|
|
62280
62496
|
|
|
@@ -62284,12 +62500,14 @@ class Dssp {
|
|
|
62284
62500
|
}
|
|
62285
62501
|
|
|
62286
62502
|
if(queryData.length == 0) continue;
|
|
62503
|
+
|
|
62504
|
+
if(queryData[0].score < tmscoreThreshold || queryData[0].num_res < minResidues) continue;
|
|
62287
62505
|
|
|
62288
|
-
|
|
62289
|
-
|
|
62290
|
-
let
|
|
62291
|
-
let
|
|
62292
|
-
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];
|
|
62293
62511
|
|
|
62294
62512
|
// Ig-like domains: B (2150, 2150a, 2150b), C (3150, 3250), E (7150, 7250), F (8150, 8250) strands
|
|
62295
62513
|
// Ig domain may require G (7050). But we'll leave that out for now.
|
|
@@ -62318,22 +62536,76 @@ class Dssp {
|
|
|
62318
62536
|
if(!(bBstrand && bCstrand && bEstrand && bFstrand)) continue;
|
|
62319
62537
|
|
|
62320
62538
|
if(!domainid2score.hasOwnProperty(domainid) || queryData[0].score > domainid2score[domainid]) {
|
|
62321
|
-
domainid2score[domainid] = queryData[0].score;
|
|
62322
|
-
if(!me.bNode) console.log(domainid + ' TM-score: ' + domainid2score[domainid] + ' matched ' + ic.refpdbArray[domainid_index[1]]);
|
|
62539
|
+
domainid2score[domainid] = queryData[0].score;
|
|
62323
62540
|
|
|
62324
|
-
|
|
62325
|
-
ic.domainid2index[domainid] = domainid_index[1];
|
|
62541
|
+
ic.domainid2refpdbname[domainid] = refpdbname;
|
|
62326
62542
|
domainid2segs[domainid] = queryData[0].segs;
|
|
62327
62543
|
ic.domainid2ig2kabat[domainid] = queryData[0].ig2kabat;
|
|
62328
62544
|
ic.domainid2ig2imgt[domainid] = queryData[0].ig2imgt;
|
|
62329
62545
|
}
|
|
62330
62546
|
}
|
|
62331
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
|
+
|
|
62332
62604
|
// combine domainid into chainid
|
|
62333
|
-
for(let domainid in ic.
|
|
62605
|
+
for(let domainid in ic.domainid2refpdbname) {
|
|
62334
62606
|
let chainid = domainid.split('-')[0];
|
|
62335
|
-
if(!ic.
|
|
62336
|
-
ic.
|
|
62607
|
+
if(!ic.chainid2refpdbname.hasOwnProperty(chainid)) ic.chainid2refpdbname[chainid] = [];
|
|
62608
|
+
ic.chainid2refpdbname[chainid].push(ic.domainid2refpdbname[domainid]);
|
|
62337
62609
|
}
|
|
62338
62610
|
|
|
62339
62611
|
// combine domainid into chainid
|
|
@@ -62349,16 +62621,15 @@ if(!me.bNode) console.log(domainid + ' TM-score: ' + domainid2score[domainid] +
|
|
|
62349
62621
|
if(!ic.chainsMapping) ic.chainsMapping = {};
|
|
62350
62622
|
for(let chainid in chainid2segs) {
|
|
62351
62623
|
let segArray = chainid2segs[chainid];
|
|
62352
|
-
|
|
62353
|
-
|
|
62354
|
-
|
|
62355
|
-
|
|
62356
|
-
|
|
62357
|
-
|
|
62358
|
-
}
|
|
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);
|
|
62359
62630
|
|
|
62360
62631
|
let prevStrand;
|
|
62361
|
-
let bCd19 = ic.
|
|
62632
|
+
let bCd19 = ic.chainid2refpdbname[chainid].length == 1 && ic.chainid2refpdbname[chainid][0] == 'CD19_6al5A_human_C2orV-n1';
|
|
62362
62633
|
for(let i = 0, il = segArray.length; i < il; ++i) {
|
|
62363
62634
|
let seg = segArray[i];
|
|
62364
62635
|
let qStart = seg.q_start;
|
|
@@ -62528,6 +62799,10 @@ if(!me.bNode) {
|
|
|
62528
62799
|
await ic.showAnnoCls.showAnnotations();
|
|
62529
62800
|
ic.annotationCls.setAnnoViewAndDisplay('detailed view');
|
|
62530
62801
|
}
|
|
62802
|
+
|
|
62803
|
+
rmStrandFromRefnumlabel(refnumLabel) {
|
|
62804
|
+
return refnumLabel.replace(/'/g, '').replace(/\*/g, '').replace(/\^/g, '').replace(/\+/g, '').replace(/\-/g, '').substr(1); // C', C''
|
|
62805
|
+
}
|
|
62531
62806
|
}
|
|
62532
62807
|
|
|
62533
62808
|
/**
|