icn3d 3.28.5 → 3.28.7
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/README.md +3 -3
- package/icn3d.js +176 -151
- package/icn3d.min.js +3 -3
- package/icn3d.module.js +176 -151
- package/package.json +1 -1
package/icn3d.js
CHANGED
|
@@ -5765,7 +5765,7 @@ class ClickMenu {
|
|
|
5765
5765
|
continue;
|
|
5766
5766
|
}
|
|
5767
5767
|
|
|
5768
|
-
if(id == '
|
|
5768
|
+
if(id == 'mn1_searchgrooup') {
|
|
5769
5769
|
html += "<td valign='top'>";
|
|
5770
5770
|
}
|
|
5771
5771
|
else if(id == 'mn2_definedsets') {
|
|
@@ -8528,11 +8528,11 @@ class SetMenu {
|
|
|
8528
8528
|
html += this.getMenuText('mn1_fold', 'Predict by Seq.', undefined, undefined, 1);
|
|
8529
8529
|
html += "<ul>";
|
|
8530
8530
|
html += this.getLink('mn1_esmfold', 'ESMFold', undefined, 2);
|
|
8531
|
-
html += this.
|
|
8531
|
+
//html += this.getMenuUrl('mn1_esmfold_link', "https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/ESMFold.ipynb", "ESMFold via ColabFold" + me.htmlCls.wifiStr, undefined, 2);
|
|
8532
|
+
html += this.getLink('mn1_alphafold', 'AlphaFold2 via ColabFold' + me.htmlCls.wifiStr, undefined, 2);
|
|
8532
8533
|
html += "</ul>";
|
|
8533
8534
|
|
|
8534
8535
|
|
|
8535
|
-
|
|
8536
8536
|
html += this.getMenuText('mn1_alignwrap', 'Align', undefined, 1, 1);
|
|
8537
8537
|
html += "<ul>";
|
|
8538
8538
|
|
|
@@ -9771,7 +9771,7 @@ class SetMenu {
|
|
|
9771
9771
|
html += this.getMenuUrl('abouticn3d', me.htmlCls.baseUrl + "icn3d/icn3d.html#about", "About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span>", 1, 1);
|
|
9772
9772
|
|
|
9773
9773
|
html += this.getMenuUrl('gallery', me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery", "Live Gallery " + me.htmlCls.wifiStr, 1, 1);
|
|
9774
|
-
html += this.getMenuUrl('video', me.htmlCls.baseUrl + "icn3d/icn3d.html#videos", "
|
|
9774
|
+
html += this.getMenuUrl('video', me.htmlCls.baseUrl + "icn3d/icn3d.html#videos", "Videos & Tutorials", 1, 1);
|
|
9775
9775
|
|
|
9776
9776
|
html += this.getMenuText('mn6_faq', 'FAQ', undefined, 1, 1);
|
|
9777
9777
|
|
|
@@ -10588,7 +10588,7 @@ class SetDialog {
|
|
|
10588
10588
|
html += 'Note: <b>VAST</b> identifies 3D domains (substructures) within each protein structure in the Molecular Modeling Database (MMDB), and then finds other protein structures that have one or more similar 3D domains, using purely geometric criteria. You have two ways to do a VAST search.<br><br>';
|
|
10589
10589
|
|
|
10590
10590
|
html += '<b>Option 1</b>, search with your selection (all residues are selected by default) in the loaded structures:<br>';
|
|
10591
|
-
html += '<form method=post enctype=multipart/form-data action="https://www.ncbi.nlm.nih.gov/Structure/vast/VSMmdb.cgi" id="' + me.pre + 'newvs2" name="newvs2" target="_blank">';
|
|
10591
|
+
html += '<form data-ncbi-sg-search="true" method=post enctype=multipart/form-data action="https://www.ncbi.nlm.nih.gov/Structure/vast/VSMmdb.cgi" id="' + me.pre + 'newvs2" name="newvs2" target="_blank">';
|
|
10592
10592
|
html += '<input type=hidden id="' + me.pre + 'pdbstr" name="pdbstr">';
|
|
10593
10593
|
html += "Searching against: <input type='radio' name='dataset' value='Non-redundant subset' checked> Medium-redundancy Subset of PDB <a href='https://www.ncbi.nlm.nih.gov/Structure/VAST/vasthelp.html#VASTNR' title='Medium-redundancy Subset' target='_blank'>?</a> <input type='radio' name='dataset' value='All'>All of PDB <br>";
|
|
10594
10594
|
// the submit value has to be "Submit" in order to make the backend cgi works
|
|
@@ -10602,12 +10602,12 @@ class SetDialog {
|
|
|
10602
10602
|
html += me.htmlCls.buttonStr + "reload_vast'>VAST</button><br><br>";
|
|
10603
10603
|
|
|
10604
10604
|
html += '<b>Option 3</b>, search with a PDB file:<br>';
|
|
10605
|
-
html += '<form method=post enctype=multipart/form-data action="https://www.ncbi.nlm.nih.gov/Structure/vast/VSMmdb.cgi" id="' + me.pre + 'newvs" name="newvs" target="_blank">';
|
|
10605
|
+
html += '<form data-ncbi-sg-search="true" method=post enctype=multipart/form-data action="https://www.ncbi.nlm.nih.gov/Structure/vast/VSMmdb.cgi" id="' + me.pre + 'newvs" name="newvs" target="_blank">';
|
|
10606
10606
|
html += "PDB File: " + me.htmlCls.inputFileStr + " name='pdbfile' size=8><br>";
|
|
10607
10607
|
html += "Searching against: <input type='radio' name='dataset' value='Non-redundant subset' checked> Medium-redundancy Subset of PDB <a href='https://www.ncbi.nlm.nih.gov/Structure/VAST/vasthelp.html#VASTNR' title='Medium-redundancy Subset' target='_blank'>?</a> <input type='radio' name='dataset' value='All'>All of PDB <br>";
|
|
10608
10608
|
// the submit value has to be "Submit" in order to make the backend cgi works
|
|
10609
10609
|
//html += '<input type="submit" name="' + me.pre + 'cmdVSMmdb" value="VAST Search"></input>';
|
|
10610
|
-
html += '<input type="submit" name="cmdVSMmdb" value="Submit"></input>';
|
|
10610
|
+
html += '<input type="submit" id="' + me.pre + 'cmdVSMmdb" name="cmdVSMmdb" value="Submit"></input>';
|
|
10611
10611
|
html += "</form><br>";
|
|
10612
10612
|
|
|
10613
10613
|
html += "</div>";
|
|
@@ -10843,7 +10843,7 @@ class SetDialog {
|
|
|
10843
10843
|
html += me.htmlCls.divStr + "dl_mmdbid' class='" + dialogClass + "' style='max-width:500px'>";
|
|
10844
10844
|
html += this.addNotebookTitle('dl_mmdbid', 'Please input an MMDB ID');
|
|
10845
10845
|
html += "MMDB or PDB ID: " + me.htmlCls.inputTextStr + "id='" + me.pre + "mmdbid' value='1TUP' size=8> <br><br>";
|
|
10846
|
-
html += me.htmlCls.buttonStr + "
|
|
10846
|
+
html += me.htmlCls.buttonStr + "reload_mmdb'>Load Biological Unit</button>" + me.htmlCls.buttonStr + "reload_mmdb_asym' style='margin-left:30px'>Load Asymmetric Unit (All Chains)</button><br/><br/><br/>";
|
|
10847
10847
|
html += '<b>Note</b>: The "<b>biological unit</b>" is the <b>biochemically active form of a biomolecule</b>, <div style="width:20px; margin:6px 0 0 20px; display:inline-block;"><span id="'
|
|
10848
10848
|
+ me.pre + 'asu_bu_expand" class="ui-icon ui-icon-plus icn3d-expand icn3d-link" style="width:15px;" title="Expand"></span><span id="'
|
|
10849
10849
|
+ me.pre + 'asu_bu_shrink" class="ui-icon ui-icon-minus icn3d-shrink icn3d-link" style="display:none; width:15px;" title="Shrink"></span></div>';
|
|
@@ -14803,7 +14803,7 @@ class SetHtml {
|
|
|
14803
14803
|
if(selType) me.htmlCls.allMenusSel[id] = selType;
|
|
14804
14804
|
if(bSimpleMenu) me.htmlCls.simpleMenus[id] = 1;
|
|
14805
14805
|
|
|
14806
|
-
return "<li><span id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
|
|
14806
|
+
return "<li><span data-pinger id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
|
|
14807
14807
|
}
|
|
14808
14808
|
|
|
14809
14809
|
// a group of menus
|
|
@@ -14815,7 +14815,7 @@ class SetHtml {
|
|
|
14815
14815
|
let styleStr = (classname == 'icn3d-menupd') ? " style='padding-left:1.5em!important;'" : "";
|
|
14816
14816
|
|
|
14817
14817
|
// no ending "</li>"" since this is usually the start of a group of menus
|
|
14818
|
-
return "<li><span id='" + me.pre + id + "'" + styleStr + ">" + text + "</span>";
|
|
14818
|
+
return "<li><span data-pinger id='" + me.pre + id + "'" + styleStr + ">" + text + "</span>";
|
|
14819
14819
|
}
|
|
14820
14820
|
|
|
14821
14821
|
getMenuUrl(id, url, text, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
|
|
@@ -14836,7 +14836,7 @@ class SetHtml {
|
|
|
14836
14836
|
if(bSimpleMenu) me.htmlCls.simpleMenus[id] = 1;
|
|
14837
14837
|
|
|
14838
14838
|
let hideStr = (bHide) ? ' style="display:none"' : '';
|
|
14839
|
-
return "<li id='" + me.pre + wrapper + "'" + hideStr + "><span id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
|
|
14839
|
+
return "<li id='" + me.pre + wrapper + "'" + hideStr + "><span data-pinger id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
|
|
14840
14840
|
}
|
|
14841
14841
|
|
|
14842
14842
|
getLinkWrapper2(id, text, wrapper, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
|
|
@@ -14844,7 +14844,7 @@ class SetHtml {
|
|
|
14844
14844
|
if(selType) me.htmlCls.allMenusSel[id] = selType;
|
|
14845
14845
|
if(bSimpleMenu) me.htmlCls.simpleMenus[id] = 1;
|
|
14846
14846
|
|
|
14847
|
-
return "<li id='" + me.pre + wrapper + "'><span id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span>";
|
|
14847
|
+
return "<li id='" + me.pre + wrapper + "'><span data-pinger id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span>";
|
|
14848
14848
|
}
|
|
14849
14849
|
|
|
14850
14850
|
getRadio(radioid, id, text, bChecked, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
|
|
@@ -14855,8 +14855,7 @@ class SetHtml {
|
|
|
14855
14855
|
let checkedStr =(bChecked) ? ' checked' : '';
|
|
14856
14856
|
|
|
14857
14857
|
//https://stackoverflow.com/questions/17541614/use-images-instead-of-radio-buttons/17541916
|
|
14858
|
-
|
|
14859
|
-
return "<li><label id='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "' " + "class='" + me.pre + radioid + "' " + "v='" + text + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-rad-text'>" + text + "</span></label></li>";
|
|
14858
|
+
return "<li><label data-pinger id='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "' " + "class='" + me.pre + radioid + "' " + "v='" + text + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-rad-text'>" + text + "</span></label></li>";
|
|
14860
14859
|
}
|
|
14861
14860
|
|
|
14862
14861
|
getRadioColor(radioid, id, text, color, bChecked, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
|
|
@@ -14867,8 +14866,7 @@ class SetHtml {
|
|
|
14867
14866
|
let checkedStr =(bChecked) ? ' checked' : '';
|
|
14868
14867
|
|
|
14869
14868
|
//https://stackoverflow.com/questions/17541614/use-images-instead-of-radio-buttons/17541916
|
|
14870
|
-
|
|
14871
|
-
return "<li><label id='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-color-rad-text' color='" + color + "'><span style='background-color:#" + color + "'>" + me.htmlCls.space3 + "</span> " + text + "</span></label></li>";
|
|
14869
|
+
return "<li><label data-pinger id='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-color-rad-text' color='" + color + "'><span style='background-color:#" + color + "'>" + me.htmlCls.space3 + "</span> " + text + "</span></label></li>";
|
|
14872
14870
|
}
|
|
14873
14871
|
|
|
14874
14872
|
setAdvanced(index) { let me = this.icn3dui; me.icn3d;
|
|
@@ -15223,7 +15221,7 @@ class SetHtml {
|
|
|
15223
15221
|
html += "</ul>";
|
|
15224
15222
|
|
|
15225
15223
|
html += me.htmlCls.divStr + name1 + "tab1'>";
|
|
15226
|
-
if(type == 'delphi') html += this.addGsizeSalt(name1) + "<br>";
|
|
15224
|
+
if(type == 'delphi') html += this.addGsizeSalt(name1 + "1") + "<br>";
|
|
15227
15225
|
|
|
15228
15226
|
html += "<span style='white-space:nowrap;font-weight:bold;'>Potential contour at: <select id='" + me.pre + name1 + "contour'>";
|
|
15229
15227
|
|
|
@@ -15288,7 +15286,7 @@ class SetHtml {
|
|
|
15288
15286
|
html += "</div>";
|
|
15289
15287
|
|
|
15290
15288
|
html += me.htmlCls.divStr + name1 + "tab2'>";
|
|
15291
|
-
if(type == 'delphi') html += this.addGsizeSalt(name1) + "<br>";
|
|
15289
|
+
if(type == 'delphi') html += this.addGsizeSalt(name1 + "2") + "<br>";
|
|
15292
15290
|
|
|
15293
15291
|
html += "<span style='white-space:nowrap;font-weight:bold;'>Surface with max potential at: <select id='" + me.pre + name1 + "contour2'>";
|
|
15294
15292
|
|
|
@@ -35922,7 +35920,7 @@ class AnnoCddSite {
|
|
|
35922
35920
|
//if(me.cfg.afid) {
|
|
35923
35921
|
|
|
35924
35922
|
// use precalculated CDD annotation if
|
|
35925
|
-
if( (Object.keys(ic.structures).length == 1 && (me.cfg.mmtfid || me.cfg.pdbid || me.cfg.opmid || me.cfg.mmdbid || me.cfg.gi || me.cfg.uniprotid || me.cfg.blast_rep_id || me.cfg.cid || me.cfg.mmcifid))
|
|
35923
|
+
if( (Object.keys(ic.structures).length == 1 && !me.cfg.afid && (me.cfg.mmtfid || me.cfg.pdbid || me.cfg.opmid || me.cfg.mmdbid || me.cfg.gi || me.cfg.uniprotid || me.cfg.blast_rep_id || me.cfg.cid || me.cfg.mmcifid))
|
|
35926
35924
|
|| (Object.keys(ic.structures).length == 2 && me.cfg.align) ) {
|
|
35927
35925
|
let data = {};
|
|
35928
35926
|
try {
|
|
@@ -39759,7 +39757,7 @@ class AddTrack {
|
|
|
39759
39757
|
if(exonArray) {
|
|
39760
39758
|
for(let j = 0, jl = exonArray.length; j < jl; ++j) {
|
|
39761
39759
|
let start = exonArray[j].resStart, end = exonArray[j].resEnd;
|
|
39762
|
-
let genStart = exonArray[j].genomeRange.split('-')[0];
|
|
39760
|
+
let genStart = parseInt(exonArray[j].genomeRange.split('-')[0]);
|
|
39763
39761
|
|
|
39764
39762
|
for(let k = 0, kl = end - start + 1; k < kl; ++k) {
|
|
39765
39763
|
let colorStr = this.getExonColor(start, end, cnt);
|
|
@@ -42024,7 +42022,7 @@ class ShowAnno {
|
|
|
42024
42022
|
url = "https://rest.uniprot.org/uniprotkb/search?format=json&fields=xref_geneid,gene_names&query=" + structure;
|
|
42025
42023
|
let geneData = await me.getAjaxPromise(url, 'json');
|
|
42026
42024
|
let geneId = (geneData.results[0] && geneData.results[0].uniProtKBCrossReferences && geneData.results[0].uniProtKBCrossReferences[0]) ? geneData.results[0].uniProtKBCrossReferences[0].id : undefined;
|
|
42027
|
-
let geneSymbol = (geneData.results[0] && geneData.results[0].genes && geneData.results[0].genes[0] && geneData.results[0].genes[0].geneName) ? geneData.results[0].genes[0].geneName.value :
|
|
42025
|
+
let geneSymbol = (geneData.results[0] && geneData.results[0].genes && geneData.results[0].genes[0] && geneData.results[0].genes[0].geneName) ? geneData.results[0].genes[0].geneName.value : 'ID ' + geneId;
|
|
42028
42026
|
ic.chainsGene[chnid] = {geneId: geneId, geneSymbol: geneSymbol};
|
|
42029
42027
|
}
|
|
42030
42028
|
}
|
|
@@ -45305,7 +45303,7 @@ class LineGraph {
|
|
|
45305
45303
|
let thisClass = this;
|
|
45306
45304
|
|
|
45307
45305
|
// round 1, 16 templates
|
|
45308
|
-
ic.refpdbArray = ['1InsulinR_8guyE_human_FN3-n1', '1Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4', '1CoAtomerGamma1_1r4xA_human', '1C3_2qkiD_human_n1', '1CuZnSuperoxideDismutase_1hl5C_human', '1ASF1A_2iijA_human', '1FAB-LIGHT_5esv_C1-n2', '1CD2_1hnfA_human_C2-n2', '1NaCaExchanger_2fwuA_dog_n2', '1FAB-HEAVY_5esv_V-n1', '1PDL1_4z18B_human_V-n1', '1BTLA_2aw2A_human_Iset', '1LaminAC_1ifrA_human', '1IsdA_2iteA_bacteria', '1TCRa_6jxrm_human_C1-n2', '1CD19_6al5A_human_C2orV-n1'];
|
|
45306
|
+
ic.refpdbArray = ['1InsulinR_8guyE_human_FN3-n1', '1Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4', '1CoAtomerGamma1_1r4xA_human', '1C3_2qkiD_human_n1', '1CuZnSuperoxideDismutase_1hl5C_human', '1ASF1A_2iijA_human', '1FAB-LIGHT_5esv_C1-n2', '1CD2_1hnfA_human_C2-n2', '1NaCaExchanger_2fwuA_dog_n2', '1FAB-HEAVY_5esv_V-n1', '1PDL1_4z18B_human_V-n1', '1BTLA_2aw2A_human_Iset', '1LaminAC_1ifrA_human', '1IsdA_2iteA_bacteria', '1TCRa_6jxrm_human_C1-n2', '1CD19_6al5A_human_C2orV-n1', '1CD28_1yjdC_human_V'];
|
|
45309
45307
|
|
|
45310
45308
|
// round 2
|
|
45311
45309
|
ic.refpdbHash = {};
|
|
@@ -45324,52 +45322,55 @@ class LineGraph {
|
|
|
45324
45322
|
ic.refpdbHash['1LaminAC_1ifrA_human'] = ['LaminAC_1ifrA_human'];
|
|
45325
45323
|
ic.refpdbHash['1IsdA_2iteA_bacteria'] = ['IsdA_2iteA_bacteria'];
|
|
45326
45324
|
ic.refpdbHash['1TCRa_6jxrm_human_C1-n2'] = ['TCRa_6jxrm_human_C1-n2'];
|
|
45327
|
-
ic.refpdbHash['1CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
45325
|
+
ic.refpdbHash['1CD19_6al5A_human_C2orV-n1'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
45326
|
+
ic.refpdbHash['1CD28_1yjdC_human_V'] = ['CD28_1yjdC_human_V'];
|
|
45328
45327
|
|
|
45329
45328
|
// use known ref structure
|
|
45330
|
-
ic.refpdbHash['
|
|
45331
|
-
ic.refpdbHash['
|
|
45332
|
-
ic.refpdbHash['
|
|
45333
|
-
ic.refpdbHash['
|
|
45334
|
-
ic.refpdbHash['
|
|
45335
|
-
ic.refpdbHash['
|
|
45336
|
-
ic.refpdbHash['
|
|
45337
|
-
|
|
45338
|
-
|
|
45339
|
-
ic.refpdbHash['
|
|
45340
|
-
ic.refpdbHash['
|
|
45341
|
-
ic.refpdbHash['
|
|
45342
|
-
ic.refpdbHash['
|
|
45343
|
-
ic.refpdbHash['
|
|
45344
|
-
ic.refpdbHash['
|
|
45345
|
-
ic.refpdbHash['
|
|
45346
|
-
ic.refpdbHash['
|
|
45347
|
-
ic.refpdbHash['
|
|
45348
|
-
ic.refpdbHash['
|
|
45349
|
-
ic.refpdbHash['
|
|
45350
|
-
ic.refpdbHash['
|
|
45351
|
-
ic.refpdbHash['
|
|
45352
|
-
ic.refpdbHash['
|
|
45353
|
-
ic.refpdbHash['
|
|
45354
|
-
ic.refpdbHash['
|
|
45355
|
-
ic.refpdbHash['
|
|
45356
|
-
ic.refpdbHash['
|
|
45357
|
-
ic.refpdbHash['
|
|
45358
|
-
ic.refpdbHash['
|
|
45359
|
-
ic.refpdbHash['
|
|
45360
|
-
ic.refpdbHash['
|
|
45361
|
-
ic.refpdbHash['
|
|
45362
|
-
ic.refpdbHash['
|
|
45363
|
-
ic.refpdbHash['
|
|
45364
|
-
ic.refpdbHash['
|
|
45365
|
-
ic.refpdbHash['
|
|
45366
|
-
ic.refpdbHash['
|
|
45367
|
-
ic.refpdbHash['
|
|
45368
|
-
ic.refpdbHash['
|
|
45369
|
-
ic.refpdbHash['
|
|
45370
|
-
ic.refpdbHash['
|
|
45371
|
-
ic.refpdbHash['
|
|
45372
|
-
ic.refpdbHash['
|
|
45329
|
+
ic.refpdbHash['5ESV_C'] = ['FAB-HEAVY_5esv_V-n1', 'FAB-HEAVY_5esv_C1-n2'];
|
|
45330
|
+
ic.refpdbHash['5ESV_D'] = ['FAB-LIGHT_5esv_V-n1', 'FAB-LIGHT_5esv_C1-n2'];
|
|
45331
|
+
ic.refpdbHash['8GUY_E'] = ['InsulinR_8guyE_human_FN3-n1', 'InsulinR_8guyE_human_FN3-n2'];
|
|
45332
|
+
ic.refpdbHash['6JXR_m'] = ['TCRa_6jxrm_human_V-n1', 'TCRa_6jxrm_human_C1-n2'];
|
|
45333
|
+
ic.refpdbHash['1HNF_A'] = ['CD2_1hnfA_human_V-n1', 'CD2_1hnfA_human_C2-n2'];
|
|
45334
|
+
ic.refpdbHash['7TZG_D'] = ['LAG3_7tzgD_human_V-n1', 'LAG3_7tzgD_human_C2-n2'];
|
|
45335
|
+
ic.refpdbHash['6PY8_C'] = ['RBPJ_6py8C_human_Unk-n1', 'RBPJ_6py8C_human_Unk-n2'];
|
|
45336
|
+
ic.refpdbHash['1BQU_B'] = ['IL6Rb_1bquB_human_FN3-n2', 'IL6Rb_1bquB_human_FN3-n3'];
|
|
45337
|
+
|
|
45338
|
+
ic.refpdbHash['1R4X_A'] = ['CoAtomerGamma1_1r4xA_human'];
|
|
45339
|
+
ic.refpdbHash['6OIL_A'] = ['VISTA_6oilA_human_V'];
|
|
45340
|
+
ic.refpdbHash['2ZXE_B'] = ['NaKATPaseTransporterBeta_2zxeB_spurdogshark'];
|
|
45341
|
+
ic.refpdbHash['1I8A_A'] = ['Endo-1,4-BetaXylanase10A_1i8aA_bacteria_n4'];
|
|
45342
|
+
ic.refpdbHash['2FWU_A'] = ['NaCaExchanger_2fwuA_dog_n2'];
|
|
45343
|
+
ic.refpdbHash['4JQI_A'] = ['BArrestin1_4jqiA_rat_n1'];
|
|
45344
|
+
ic.refpdbHash['1NBQ_A'] = ['JAM1_1nbqA_human_VorIset-n2'];
|
|
45345
|
+
ic.refpdbHash['1O75_A'] = ['TP47_1o75A_bacteria'];
|
|
45346
|
+
ic.refpdbHash['7PHR_H'] = ['MHCIa_7phrH_human_C1'];
|
|
45347
|
+
ic.refpdbHash['2IIJ_A'] = ['ASF1A_2iijA_human'];
|
|
45348
|
+
ic.refpdbHash['4Z18_B'] = ['PDL1_4z18B_human_V-n1'];
|
|
45349
|
+
ic.refpdbHash['1T6V_N'] = ['VNAR_1t6vN_shark_V'];
|
|
45350
|
+
ic.refpdbHash['2O6C_A'] = ['TP34_2o6cA_bacteria'];
|
|
45351
|
+
ic.refpdbHash['3KYS_C'] = ['TEAD1_3kysC_human'];
|
|
45352
|
+
ic.refpdbHash['7PHR_L'] = ['B2Microglobulin_7phrL_human_C1'];
|
|
45353
|
+
ic.refpdbHash['2AW2_A'] = ['BTLA_2aw2A_human_Iset'];
|
|
45354
|
+
ic.refpdbHash['1HL5_C'] = ['CuZnSuperoxideDismutase_1hl5C_human'];
|
|
45355
|
+
ic.refpdbHash['1WF5_A'] = ['Sidekick2_1wf5A_human_FN3-n7'];
|
|
45356
|
+
ic.refpdbHash['5J0B_B'] = ['Siglec3_5j0bB_human_C2-n2'];
|
|
45357
|
+
ic.refpdbHash['1IFR_A'] = ['LaminAC_1ifrA_human'];
|
|
45358
|
+
ic.refpdbHash['Q7Z7D3_A'] = ['VTCN1_Q7Z7D3_human_V-n2'];
|
|
45359
|
+
ic.refpdbHash['4ZQK_B'] = ['PD1_4zqkB_human_V'];
|
|
45360
|
+
ic.refpdbHash['2DM3_A'] = ['Palladin_2dm3A_human_Iset-n1'];
|
|
45361
|
+
ic.refpdbHash['2ITE_A'] = ['IsdA_2iteA_bacteria'];
|
|
45362
|
+
ic.refpdbHash['1XAK_A'] = ['ORF7a_1xakA_virus'];
|
|
45363
|
+
ic.refpdbHash['4ZT1_A'] = ['ECadherin_4zt1A_human_n2'];
|
|
45364
|
+
ic.refpdbHash['1LMI_A'] = ['MPT63_1lmiA_bacteria'];
|
|
45365
|
+
ic.refpdbHash['1CD8_A'] = ['CD8a_1cd8A_human_V'];
|
|
45366
|
+
ic.refpdbHash['3S97_C'] = ['Contactin1_3s97C_human_C2-n2'];
|
|
45367
|
+
ic.refpdbHash['1AXI_B'] = ['GHR_1axiB_human_FN3-n1'];
|
|
45368
|
+
ic.refpdbHash['6X4G_A'] = ['ICOS_6x4gA_human_V'];
|
|
45369
|
+
ic.refpdbHash['2EE2_A'] = ['Contactin1_2ee2A_human_FN3-n9'];
|
|
45370
|
+
ic.refpdbHash['4UOW_M'] = ['Titin_4uowM_human_Unk-n152'];
|
|
45371
|
+
ic.refpdbHash['6A15_A'] = ['CD19_6al5A_human_C2orV-n1'];
|
|
45372
|
+
ic.refpdbHash['2QKI_D'] = ['C3_2qkiD_human_n1'];
|
|
45373
|
+
ic.refpdbHash['1YJD_C'] = ['CD28_1yjdC_human_V'];
|
|
45373
45374
|
|
|
45374
45375
|
let pdbAjaxArray = [];
|
|
45375
45376
|
for(let k = 0, kl = ic.refpdbArray.length; k < kl; ++k) {
|
|
@@ -45663,11 +45664,14 @@ class LineGraph {
|
|
|
45663
45664
|
//if(!(bBstrand && bCstrand && bEstrand && bFstrand && bGstrand)) continue;
|
|
45664
45665
|
if(!(bBstrand && bCstrand && bEstrand && bFstrand)) {
|
|
45665
45666
|
if(!me.bNode) console.log("Some of the Ig strands B, C, E, F are missing in the domain " + domainid + "...");
|
|
45667
|
+
if(ic.domainid2refpdbname[domainid]) delete ic.domainid2refpdbname[domainid];
|
|
45666
45668
|
continue;
|
|
45667
45669
|
}
|
|
45668
45670
|
}
|
|
45669
45671
|
|
|
45670
45672
|
if(!bRound1) {
|
|
45673
|
+
console.log("domainid: " + domainid);
|
|
45674
|
+
|
|
45671
45675
|
if(!domainid2score.hasOwnProperty(domainid) || queryData[0].score > domainid2score[domainid]) {
|
|
45672
45676
|
domainid2score[domainid] = queryData[0].score;
|
|
45673
45677
|
|
|
@@ -45699,11 +45703,14 @@ class LineGraph {
|
|
|
45699
45703
|
for(let domainid in ic.domainid2refpdbname) {
|
|
45700
45704
|
let pdbAjaxArray = [];
|
|
45701
45705
|
let refpdbname = ic.domainid2refpdbname[domainid];
|
|
45702
|
-
let pdbid = domainid.substr(0, domainid.indexOf('_'));
|
|
45706
|
+
//let pdbid = domainid.substr(0, domainid.indexOf('_'));
|
|
45707
|
+
let chainid = domainid.substr(0, domainid.indexOf('-'));
|
|
45703
45708
|
|
|
45704
|
-
if(ic.refpdbHash.hasOwnProperty(pdbid)) {
|
|
45709
|
+
//if(ic.refpdbHash.hasOwnProperty(pdbid)) {
|
|
45710
|
+
if(ic.refpdbHash.hasOwnProperty(chainid)) {
|
|
45705
45711
|
// use itself as the ref structure
|
|
45706
|
-
refpdbname = pdbid;
|
|
45712
|
+
//refpdbname = pdbid;
|
|
45713
|
+
refpdbname = chainid;
|
|
45707
45714
|
|
|
45708
45715
|
if(!me.bNode) console.log("Adjusted refpdbname for domainid " + domainid + ": " + refpdbname);
|
|
45709
45716
|
}
|
|
@@ -45745,11 +45752,11 @@ class LineGraph {
|
|
|
45745
45752
|
dataArray3 = await allPromise;
|
|
45746
45753
|
|
|
45747
45754
|
await thisClass.parseAlignData(dataArray3, domainidpairArray3);
|
|
45748
|
-
|
|
45755
|
+
|
|
45749
45756
|
// end of round 2
|
|
45750
45757
|
return;
|
|
45751
45758
|
}
|
|
45752
|
-
|
|
45759
|
+
|
|
45753
45760
|
// combine domainid into chainid
|
|
45754
45761
|
let processedChainid = {};
|
|
45755
45762
|
for(let domainid in ic.domainid2refpdbname) {
|
|
@@ -45856,17 +45863,18 @@ class LineGraph {
|
|
|
45856
45863
|
|
|
45857
45864
|
// A-: 10xx
|
|
45858
45865
|
// A: 11xx
|
|
45866
|
+
// A+ continue A
|
|
45859
45867
|
// A': 12xx
|
|
45860
|
-
// A+: 13xx
|
|
45861
45868
|
// B: 21xx
|
|
45862
45869
|
// C: 32xx
|
|
45863
45870
|
// C': 42xx
|
|
45864
45871
|
// C'': 51xx, 52xx
|
|
45865
45872
|
// D: 61xx
|
|
45866
45873
|
// E: 71xx
|
|
45874
|
+
// E+: continue E
|
|
45867
45875
|
// F: 82xx
|
|
45868
45876
|
// G: 91xx, 92xx
|
|
45869
|
-
// G+:
|
|
45877
|
+
// G+: continue G
|
|
45870
45878
|
|
|
45871
45879
|
// if(refnum < 100) return " " + oriRefnum;
|
|
45872
45880
|
// else if(refnum >= 100 && refnum < 1000) {
|
|
@@ -45876,11 +45884,10 @@ class LineGraph {
|
|
|
45876
45884
|
if(refnum < 900) return undefined;
|
|
45877
45885
|
else if(refnum >= 900 && refnum < 1000) return " " + oriRefnum;
|
|
45878
45886
|
else if(refnum >= 1000 && refnum < 1100) return "A-" + oriRefnum;
|
|
45879
|
-
else if(refnum >= 1100 && refnum < 1200) return "A" + oriRefnum;
|
|
45887
|
+
else if(refnum >= 1100 && refnum < 1200) return "A" + oriRefnum; // could be A+
|
|
45880
45888
|
else if(refnum >= 1200 && refnum < 1300) return "A'" + oriRefnum;
|
|
45881
|
-
//else if(refnum >= 1300 && refnum < 1400) return "A
|
|
45882
|
-
else if(refnum >= 1300 && refnum <
|
|
45883
|
-
else if(refnum >= 1400 && refnum < 2000) {
|
|
45889
|
+
//else if(refnum >= 1300 && refnum < 1400) return "A+" + oriRefnum;
|
|
45890
|
+
else if(refnum >= 1300 && refnum < 2000) {
|
|
45884
45891
|
if(prevStrand && prevStrand.substr(0, 1) == 'A') {
|
|
45885
45892
|
return prevStrand + oriRefnum;
|
|
45886
45893
|
}
|
|
@@ -45893,12 +45900,11 @@ class LineGraph {
|
|
|
45893
45900
|
else if(refnum >= 4000 && refnum < 5000) return "C'" + oriRefnum;
|
|
45894
45901
|
else if(refnum >= 5000 && refnum < 6000) return "C''" + oriRefnum;
|
|
45895
45902
|
else if(refnum >= 6000 && refnum < 7000) return "D" + oriRefnum;
|
|
45896
|
-
else if(refnum >= 7000 && refnum < 8000) return "E" + oriRefnum;
|
|
45903
|
+
else if(refnum >= 7000 && refnum < 8000) return "E" + oriRefnum; // could be E+
|
|
45897
45904
|
else if(refnum >= 8000 && refnum < 9000) return "F" + oriRefnum;
|
|
45898
|
-
else if(refnum >= 9000 && refnum <
|
|
45899
|
-
//else if(refnum >= 9400 && refnum < 9500) return "G
|
|
45900
|
-
else if(refnum >=
|
|
45901
|
-
else if(refnum >= 9500) return "G" + oriRefnum;
|
|
45905
|
+
else if(refnum >= 9000 && refnum < 9300) return "G" + oriRefnum; // could be G+
|
|
45906
|
+
//else if(refnum >= 9400 && refnum < 9500) return "G+" + oriRefnum;
|
|
45907
|
+
else if(refnum >= 9300) return "G" + oriRefnum;
|
|
45902
45908
|
}
|
|
45903
45909
|
|
|
45904
45910
|
async parseCustomRefFile(data) { let ic = this.icn3d; ic.icn3dui;
|
|
@@ -49812,7 +49818,12 @@ class ChainalignParser {
|
|
|
49812
49818
|
targetAjax = me.getAjaxPromise(url_t, 'text');
|
|
49813
49819
|
}
|
|
49814
49820
|
else {
|
|
49815
|
-
|
|
49821
|
+
let structureTmp = structure;
|
|
49822
|
+
if(structure.length == 5) {
|
|
49823
|
+
structureTmp = structure.substr(0,4);
|
|
49824
|
+
}
|
|
49825
|
+
|
|
49826
|
+
url_t = me.htmlCls.baseUrl + "mmdb/mmdb_strview.cgi?v=2&program=icn3d&b=1&s=1&ft=1&bu=" + me.cfg.bu + "&uid=" + structureTmp;
|
|
49816
49827
|
if(me.cfg.inpara !== undefined) url_t += me.cfg.inpara;
|
|
49817
49828
|
|
|
49818
49829
|
targetAjax = me.getAjaxPromise(url_t, 'jsonp');
|
|
@@ -49889,7 +49900,8 @@ class ChainalignParser {
|
|
|
49889
49900
|
}
|
|
49890
49901
|
else {
|
|
49891
49902
|
let bNoSeqalign = true;
|
|
49892
|
-
|
|
49903
|
+
let pdbid = structArray[i];
|
|
49904
|
+
hAtomsTmp = await ic.mmdbParserCls.parseMmdbData(queryDataArray[i], targetOrQuery, undefined, undefined, bLastQuery, bNoSeqalign, pdbid);
|
|
49893
49905
|
}
|
|
49894
49906
|
|
|
49895
49907
|
hAtoms = me.hashUtilsCls.unionHash(hAtoms, hAtomsTmp);
|
|
@@ -50386,7 +50398,7 @@ class MmdbParser {
|
|
|
50386
50398
|
if(Object.keys(data.atoms).length == 0) { // for large structures such as 3J3Q
|
|
50387
50399
|
// use mmtfid
|
|
50388
50400
|
let pdbid = data.pdbId;
|
|
50389
|
-
ic.mmtfParserCls.downloadMmtf(pdbid);
|
|
50401
|
+
await ic.mmtfParserCls.downloadMmtf(pdbid);
|
|
50390
50402
|
|
|
50391
50403
|
return;
|
|
50392
50404
|
}
|
|
@@ -50551,9 +50563,10 @@ class MmdbParser {
|
|
|
50551
50563
|
}
|
|
50552
50564
|
}
|
|
50553
50565
|
|
|
50554
|
-
async parseMmdbData(data, type, chainid, chainIndex, bLastQuery, bNoTransformNoSeqalign) { let ic = this.icn3d, me = ic.icn3dui;
|
|
50566
|
+
async parseMmdbData(data, type, chainid, chainIndex, bLastQuery, bNoTransformNoSeqalign, pdbidIn) { let ic = this.icn3d, me = ic.icn3dui;
|
|
50555
50567
|
let hAtoms;
|
|
50556
|
-
let pdbid =(data.pdbId !== undefined) ? data.pdbId : data.mmdbId;
|
|
50568
|
+
let pdbid = (data.pdbId !== undefined) ? data.pdbId : data.mmdbId;
|
|
50569
|
+
if(pdbidIn) pdbid = pdbidIn;
|
|
50557
50570
|
|
|
50558
50571
|
this.parseMmdbDataPart1(data, type);
|
|
50559
50572
|
|
|
@@ -50778,7 +50791,7 @@ class MmdbParser {
|
|
|
50778
50791
|
url = me.htmlCls.baseUrl + "mmdb/mmdb_strview.cgi?v=2&program=icn3d&b=1&s=1&ft=1&bu=" + me.cfg.bu + "&simple=1&uid=" + mmdbid;
|
|
50779
50792
|
}
|
|
50780
50793
|
|
|
50781
|
-
// use asymmetric unit for BLAST search, e.g., https://www.ncbi.nlm.nih.gov/Structure/icn3d
|
|
50794
|
+
// use asymmetric unit for BLAST search, e.g., https://www.ncbi.nlm.nih.gov/Structure/icn3d/?from=blast&blast_rep_id=5XZC_B&query_id=1TUP_A&command=view+annotations;set+annotation+cdd;set+annotation+site;set+view+detailed+view;select+chain+5XZC_B;show+selection&log$=align&blast_rank=1&RID=EPUCYNVV014&bu=0
|
|
50782
50795
|
if(me.cfg.blast_rep_id !== undefined) url += '&bu=0';
|
|
50783
50796
|
|
|
50784
50797
|
//ic.bCid = undefined;
|
|
@@ -50810,57 +50823,31 @@ class MmtfParser {
|
|
|
50810
50823
|
|
|
50811
50824
|
//MMTF is a new binary data format besides the previous PDB and mmCIF formats for 3D structures.
|
|
50812
50825
|
//The JavaScript Methods at http://mmtf.rcsb.org/ was used to load and parse the data.
|
|
50813
|
-
downloadMmtf(mmtfid) { let ic = this.icn3d
|
|
50826
|
+
async downloadMmtf(mmtfid) { let ic = this.icn3d, me = ic.icn3dui;
|
|
50814
50827
|
ic.ParserUtilsCls.setYourNote(mmtfid.toUpperCase() + '(MMTF) in iCn3D');
|
|
50815
50828
|
//ic.bCid = undefined;
|
|
50816
50829
|
|
|
50817
|
-
|
|
50818
|
-
|
|
50819
|
-
|
|
50820
|
-
|
|
50821
|
-
|
|
50822
|
-
|
|
50823
|
-
|
|
50824
|
-
var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
50825
|
-
return;
|
|
50826
|
-
}
|
|
50830
|
+
let mmtfData = await me.getMmtfReducedPromise(mmtfid);
|
|
50831
|
+
if(mmtfData.numAtoms * 10 > ic.maxatomcnt) {
|
|
50832
|
+
let bFull = false;
|
|
50833
|
+
if(Object.keys(mmtfData).length == 0) {
|
|
50834
|
+
var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
50835
|
+
return;
|
|
50836
|
+
}
|
|
50827
50837
|
|
|
50828
|
-
|
|
50829
|
-
|
|
50830
|
-
|
|
50831
|
-
|
|
50832
|
-
|
|
50833
|
-
|
|
50834
|
-
|
|
50835
|
-
|
|
50836
|
-
|
|
50837
|
-
let bFull = true;
|
|
50838
|
-
if(Object.keys(mmtfData2).length == 0) {
|
|
50839
|
-
var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
50840
|
-
return;
|
|
50841
|
-
}
|
|
50842
|
-
// ic.deferredOpm = $.Deferred(function() {
|
|
50843
|
-
// ic.opmParserCls.loadOpmData(mmtfData2, mmtfid, bFull, 'mmtf');
|
|
50844
|
-
// });
|
|
50845
|
-
|
|
50846
|
-
// return ic.deferredOpm.promise();
|
|
50847
|
-
|
|
50848
|
-
await ic.opmParserCls.loadOpmData(mmtfData2, mmtfid, bFull, 'mmtf');
|
|
50849
|
-
},
|
|
50850
|
-
// onError callback
|
|
50851
|
-
function( error ){
|
|
50852
|
-
//var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
50853
|
-
//console.error( error )
|
|
50854
|
-
}
|
|
50855
|
-
);
|
|
50856
|
-
}
|
|
50857
|
-
},
|
|
50858
|
-
// onError callback
|
|
50859
|
-
function( error ){
|
|
50860
|
-
//var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
50861
|
-
//console.error( error )
|
|
50838
|
+
await ic.opmParserCls.loadOpmData(mmtfData, mmtfid, bFull, 'mmtf');
|
|
50839
|
+
}
|
|
50840
|
+
else {
|
|
50841
|
+
let mmtfData2 = await me.getMmtfPromise(mmtfid);
|
|
50842
|
+
|
|
50843
|
+
let bFull = true;
|
|
50844
|
+
if(Object.keys(mmtfData2).length == 0) {
|
|
50845
|
+
var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
50846
|
+
return;
|
|
50862
50847
|
}
|
|
50863
|
-
|
|
50848
|
+
|
|
50849
|
+
await ic.opmParserCls.loadOpmData(mmtfData2, mmtfid, bFull, 'mmtf');
|
|
50850
|
+
}
|
|
50864
50851
|
}
|
|
50865
50852
|
|
|
50866
50853
|
async parseMmtfData(mmtfData, mmtfid, bFull) { let ic = this.icn3d, me = ic.icn3dui;
|
|
@@ -58745,7 +58732,6 @@ class ApplyCommand {
|
|
|
58745
58732
|
let command = commandOri.toLowerCase();
|
|
58746
58733
|
|
|
58747
58734
|
// exact match =============
|
|
58748
|
-
|
|
58749
58735
|
//var file_pref =(ic.inputid) ? ic.inputid : "custom";
|
|
58750
58736
|
if(command == 'share link') {
|
|
58751
58737
|
await ic.shareLinkCls.shareLink();
|
|
@@ -61659,6 +61645,7 @@ class LoadScript {
|
|
|
61659
61645
|
ic.inputid = id;
|
|
61660
61646
|
if(command.indexOf('load mmtf') !== -1) {
|
|
61661
61647
|
me.cfg.mmtfid = id;
|
|
61648
|
+
|
|
61662
61649
|
await ic.mmtfParserCls.downloadMmtf(id);
|
|
61663
61650
|
}
|
|
61664
61651
|
else if(command.indexOf('load pdb') !== -1) {
|
|
@@ -64149,8 +64136,11 @@ class Delphi {
|
|
|
64149
64136
|
let salt = saltArray[1]; //parseFloat(saltArray[1]);
|
|
64150
64137
|
|
|
64151
64138
|
// The values should be string
|
|
64152
|
-
$("#" + ic.pre + "
|
|
64153
|
-
$("#" + ic.pre + "
|
|
64139
|
+
$("#" + ic.pre + "delphi1gsize").val(gsize);
|
|
64140
|
+
$("#" + ic.pre + "delphi1salt").val(salt);
|
|
64141
|
+
|
|
64142
|
+
$("#" + ic.pre + "delphi2gsize").val(gsize);
|
|
64143
|
+
$("#" + ic.pre + "delphi2salt").val(salt);
|
|
64154
64144
|
|
|
64155
64145
|
if(paraArray.length == 7) {
|
|
64156
64146
|
let surfaceArray = paraArray[4].split(" ");
|
|
@@ -64175,11 +64165,11 @@ class Delphi {
|
|
|
64175
64165
|
}
|
|
64176
64166
|
|
|
64177
64167
|
async loadDelphiFile(type) { let ic = this.icn3d, me = ic.icn3dui;
|
|
64178
|
-
let gsize = $("#" + ic.pre + "
|
|
64179
|
-
let salt = $("#" + ic.pre + "
|
|
64180
|
-
let contour =(type == 'delphi2') ? $("#" + ic.pre + "delphicontour2").val() : $("#" + ic.pre + "delphicontour").val();
|
|
64168
|
+
let gsize = (type == 'delphi2') ? $("#" + ic.pre + "delphi2gsize").val() : $("#" + ic.pre + "delphi1gsize").val();
|
|
64169
|
+
let salt = (type == 'delphi2') ? $("#" + ic.pre + "delphi2salt").val() : $("#" + ic.pre + "delphi1gsize").val();
|
|
64170
|
+
let contour = (type == 'delphi2') ? $("#" + ic.pre + "delphicontour2").val() : $("#" + ic.pre + "delphicontour").val();
|
|
64181
64171
|
|
|
64182
|
-
let bSurface =(type == 'delphi2') ? true: false;
|
|
64172
|
+
let bSurface = (type == 'delphi2') ? true: false;
|
|
64183
64173
|
|
|
64184
64174
|
await this.CalcPhi(gsize, salt, contour, bSurface);
|
|
64185
64175
|
|
|
@@ -67907,7 +67897,7 @@ class ResizeCanvas {
|
|
|
67907
67897
|
|
|
67908
67898
|
ic.applyCenterCls.setWidthHeight(width, heightTmp);
|
|
67909
67899
|
|
|
67910
|
-
if(bDraw === undefined || bDraw) {
|
|
67900
|
+
if(ic.structures && Object.keys(ic.structures).length > 0 && (bDraw === undefined || bDraw)) {
|
|
67911
67901
|
ic.drawCls.draw();
|
|
67912
67902
|
}
|
|
67913
67903
|
}
|
|
@@ -69405,7 +69395,8 @@ class ShareLink {
|
|
|
69405
69395
|
let url = this.shareLinkUrl();
|
|
69406
69396
|
|
|
69407
69397
|
let bTooLong =(url.length > 4000 || url.indexOf('http') !== 0) ? true : false;
|
|
69408
|
-
if(bPngHtml) url += "&random=" + parseInt(Math.random() * 1000); // generate a new shorten URL and thus image name everytime
|
|
69398
|
+
//if(bPngHtml) url += "&random=" + parseInt(Math.random() * 1000); // generate a new shorten URL and thus image name everytime
|
|
69399
|
+
|
|
69409
69400
|
//var inputid =(ic.inputid) ? ic.inputid : "custom";
|
|
69410
69401
|
let inputid = Object.keys(ic.structures).join('_');
|
|
69411
69402
|
if(inputid == ic.defaultPdbId) {
|
|
@@ -69513,7 +69504,7 @@ class ShareLink {
|
|
|
69513
69504
|
}
|
|
69514
69505
|
|
|
69515
69506
|
shareLinkUrl(bAllCommands, bOutputCmd) { let ic = this.icn3d, me = ic.icn3dui;
|
|
69516
|
-
let url = me.htmlCls.baseUrl + "icn3d
|
|
69507
|
+
let url = me.htmlCls.baseUrl + "icn3d/?";
|
|
69517
69508
|
let outputCmd = '';
|
|
69518
69509
|
if(me.cfg.bSidebyside) url = me.htmlCls.baseUrl + "icn3d/full2.html?";
|
|
69519
69510
|
|
|
@@ -72578,7 +72569,7 @@ class iCn3DUI {
|
|
|
72578
72569
|
//even when multiple iCn3D viewers are shown together.
|
|
72579
72570
|
this.pre = this.cfg.divid + "_";
|
|
72580
72571
|
|
|
72581
|
-
this.REVISION = '3.28.
|
|
72572
|
+
this.REVISION = '3.28.1';
|
|
72582
72573
|
|
|
72583
72574
|
// In nodejs, iCn3D defines "window = {navigator: {}}"
|
|
72584
72575
|
this.bNode = (Object.keys(window).length < 2) ? true : false;
|
|
@@ -72784,17 +72775,17 @@ iCn3DUI.prototype.show3DStructure = async function(pdbStr) { let me = this;
|
|
|
72784
72775
|
chainidArray.push(domainidArray[i]);
|
|
72785
72776
|
}
|
|
72786
72777
|
}
|
|
72787
|
-
|
|
72788
|
-
let mmdbafid = '';
|
|
72789
|
-
for(let i = 0, il = chainidArray.length; i < il; ++i) {
|
|
72790
|
-
if(i > 0) mmdbafid += ',';
|
|
72791
|
-
mmdbafid += chainidArray[i].substr(0, chainidArray[i].indexOf('_'));
|
|
72792
|
-
}
|
|
72793
72778
|
|
|
72794
72779
|
// realign
|
|
72795
72780
|
ic.chainidArray = [chain_t].concat(chainidArray);
|
|
72796
72781
|
ic.chainidArray = ic.chainalignParserCls.addPostfixForChainids(ic.chainidArray);
|
|
72797
72782
|
|
|
72783
|
+
let mmdbafid = '';
|
|
72784
|
+
for(let i = 0, il = ic.chainidArray.length; i < il; ++i) {
|
|
72785
|
+
if(i > 0) mmdbafid += ',';
|
|
72786
|
+
mmdbafid += ic.chainidArray[i].substr(0, ic.chainidArray[i].indexOf('_'));
|
|
72787
|
+
}
|
|
72788
|
+
|
|
72798
72789
|
me.htmlCls.clickMenuCls.setLogCmd('resdef ' + me.cfg.resdef, true);
|
|
72799
72790
|
|
|
72800
72791
|
ic.loadCmd = 'vast_search_chainid ' + ic.chainidArray;
|
|
@@ -73065,6 +73056,40 @@ iCn3DUI.prototype.setIcn3d = function() { let me = this;
|
|
|
73065
73056
|
me.setDialogAjax();
|
|
73066
73057
|
};
|
|
73067
73058
|
|
|
73059
|
+
iCn3DUI.prototype.getMmtfPromise = function(mmtfid) { return new Promise(function(resolve, reject) {
|
|
73060
|
+
MMTF.fetch(
|
|
73061
|
+
mmtfid,
|
|
73062
|
+
// onLoad callback
|
|
73063
|
+
async function( mmtfData ){
|
|
73064
|
+
resolve(mmtfData);
|
|
73065
|
+
},
|
|
73066
|
+
// onError callback
|
|
73067
|
+
function( error ){
|
|
73068
|
+
//var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
73069
|
+
//console.error( error )
|
|
73070
|
+
reject('error');
|
|
73071
|
+
}
|
|
73072
|
+
);
|
|
73073
|
+
});
|
|
73074
|
+
};
|
|
73075
|
+
|
|
73076
|
+
iCn3DUI.prototype.getMmtfReducedPromise = function(mmtfid) { return new Promise(function(resolve, reject) {
|
|
73077
|
+
MMTF.fetchReduced(
|
|
73078
|
+
mmtfid,
|
|
73079
|
+
// onLoad callback
|
|
73080
|
+
async function( mmtfData ){
|
|
73081
|
+
resolve(mmtfData);
|
|
73082
|
+
},
|
|
73083
|
+
// onError callback
|
|
73084
|
+
function( error ){
|
|
73085
|
+
//var aaa = 1; //alert('This PDB structure is not found at RCSB...');
|
|
73086
|
+
//console.error( error )
|
|
73087
|
+
reject('error');
|
|
73088
|
+
}
|
|
73089
|
+
);
|
|
73090
|
+
});
|
|
73091
|
+
};
|
|
73092
|
+
|
|
73068
73093
|
iCn3DUI.prototype.getAjaxPromise = function(url, dataType, beforeSend, alertMess, logMess, complete, bNode) { let me = this;
|
|
73069
73094
|
// if(!bNode || dataType != 'json') {
|
|
73070
73095
|
return new Promise(function(resolve, reject) {
|