icn3d 3.14.0 → 3.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/icn3d.js +224 -118
- package/icn3d.min.js +1 -1
- package/icn3d.module.js +224 -118
- package/package.json +1 -1
package/icn3d.js
CHANGED
|
@@ -7487,15 +7487,16 @@ class Strand {
|
|
|
7487
7487
|
}
|
|
7488
7488
|
|
|
7489
7489
|
let maxDist = 6.0;
|
|
7490
|
-
|
|
7491
|
-
|
|
7490
|
+
let bBrokenSs = (prevCoorCA && Math.abs(currentCA.x - prevCoorCA.x) > maxDist) || (prevCoorCA && Math.abs(currentCA.y - prevCoorCA.y) > maxDist) || (prevCoorCA && Math.abs(currentCA.z - prevCoorCA.z) > maxDist);
|
|
7491
|
+
// The following code didn't work to select one residue
|
|
7492
|
+
// let bBrokenSs = !atoms.hasOwnProperty(atom.serial) || (prevCoorCA && Math.abs(currentCA.x - prevCoorCA.x) > maxDist) || (prevCoorCA && Math.abs(currentCA.y - prevCoorCA.y) > maxDist) || (prevCoorCA && Math.abs(currentCA.z - prevCoorCA.z) > maxDist);
|
|
7492
7493
|
|
|
7493
|
-
if(bBrokenSs && atom.ss === 'sheet') {
|
|
7494
|
-
|
|
7495
|
-
}
|
|
7496
|
-
else if(bBrokenSs && atom.ss === 'helix') {
|
|
7497
|
-
|
|
7498
|
-
}
|
|
7494
|
+
// if(bBrokenSs && atom.ss === 'sheet') {
|
|
7495
|
+
// bSheetSegment = true;
|
|
7496
|
+
// }
|
|
7497
|
+
// else if(bBrokenSs && atom.ss === 'helix') {
|
|
7498
|
+
// bHelixSegment = true;
|
|
7499
|
+
// }
|
|
7499
7500
|
|
|
7500
7501
|
if ((atom.ssbegin || atom.ssend || (drawnResidueCount === totalResidueCount - 1) || bBrokenSs) && pnts[0].length > 0 && bSameChain) {
|
|
7501
7502
|
let atomName = 'CA';
|
|
@@ -13782,7 +13783,10 @@ class DefinedSets {
|
|
|
13782
13783
|
ic.hAtoms = {};
|
|
13783
13784
|
this.setHAtomsFromSets(orArray, 'or');
|
|
13784
13785
|
|
|
13785
|
-
if(Object.keys(ic.hAtoms).length == 0)
|
|
13786
|
+
if(Object.keys(ic.hAtoms).length == 0) {
|
|
13787
|
+
//ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
|
|
13788
|
+
ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
|
|
13789
|
+
}
|
|
13786
13790
|
this.setHAtomsFromSets(andArray, 'and');
|
|
13787
13791
|
|
|
13788
13792
|
this.setHAtomsFromSets(notArray, 'not');
|
|
@@ -17862,7 +17866,7 @@ class SetColor {
|
|
|
17862
17866
|
break;
|
|
17863
17867
|
|
|
17864
17868
|
case 'chain':
|
|
17865
|
-
if(ic.chainsColor !== undefined && Object.keys(ic.chainsColor).length > 0) { // mmdb input
|
|
17869
|
+
if(ic.chainsColor !== undefined && Object.keys(ic.chainsColor).length > 0) { // mmdb input
|
|
17866
17870
|
this.setMmdbChainColor();
|
|
17867
17871
|
}
|
|
17868
17872
|
else {
|
|
@@ -22656,7 +22660,7 @@ class Dssp {
|
|
|
22656
22660
|
|
|
22657
22661
|
ic.pdbParserCls.loadPdbDataRender(bAppend);
|
|
22658
22662
|
|
|
22659
|
-
if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
|
|
22663
|
+
//if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
|
|
22660
22664
|
if(ic.deferredSecondary !== undefined) ic.deferredSecondary.resolve();
|
|
22661
22665
|
});
|
|
22662
22666
|
}
|
|
@@ -22775,7 +22779,7 @@ class Dssp {
|
|
|
22775
22779
|
|
|
22776
22780
|
ic.pdbParserCls.loadPdbDataRender(bAppend);
|
|
22777
22781
|
|
|
22778
|
-
if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
|
|
22782
|
+
//if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
|
|
22779
22783
|
if(ic.deferredSecondary !== undefined) ic.deferredSecondary.resolve();
|
|
22780
22784
|
}
|
|
22781
22785
|
}
|
|
@@ -22796,7 +22800,7 @@ class PdbParser {
|
|
|
22796
22800
|
let url, dataType;
|
|
22797
22801
|
|
|
22798
22802
|
if(bAf) {
|
|
22799
|
-
url = "https://alphafold.ebi.ac.uk/files/AF-" + pdbid + "-F1-
|
|
22803
|
+
url = "https://alphafold.ebi.ac.uk/files/AF-" + pdbid + "-F1-model_v3.pdb";
|
|
22800
22804
|
ic.ParserUtilsCls.setYourNote(pdbid.toUpperCase() + '(AlphaFold) in iCn3D');
|
|
22801
22805
|
}
|
|
22802
22806
|
else {
|
|
@@ -24087,7 +24091,7 @@ class MmdbParser {
|
|
|
24087
24091
|
|
|
24088
24092
|
let molid2rescount = data.moleculeInfor;
|
|
24089
24093
|
let molid2color = {}, chain2molid = {}, molid2chain = {};
|
|
24090
|
-
let chainNameHash = {};
|
|
24094
|
+
let chainNameHash = {};
|
|
24091
24095
|
for(let i in molid2rescount) {
|
|
24092
24096
|
if(Object.keys(molid2rescount[i]).length === 0) continue;
|
|
24093
24097
|
|
|
@@ -24107,7 +24111,7 @@ class MmdbParser {
|
|
|
24107
24111
|
chain2molid[chain] = i;
|
|
24108
24112
|
molid2chain[i] = chain;
|
|
24109
24113
|
|
|
24110
|
-
ic.chainsColor[chain] =(type !== undefined) ? me.parasCls.thr(me.htmlCls.GREY8) : me.parasCls.thr(color);
|
|
24114
|
+
ic.chainsColor[chain] = (type !== undefined && !me.cfg.mmdbafid) ? me.parasCls.thr(me.htmlCls.GREY8) : me.parasCls.thr(color);
|
|
24111
24115
|
|
|
24112
24116
|
let geneId =(molid2rescount[i].geneId === undefined) ? '' : molid2rescount[i].geneId;
|
|
24113
24117
|
let geneSymbol =(molid2rescount[i].geneSymbol === undefined) ? '' : molid2rescount[i].geneSymbol;
|
|
@@ -25679,7 +25683,7 @@ class ChainalignParser {
|
|
|
25679
25683
|
|
|
25680
25684
|
let url_t;
|
|
25681
25685
|
if(ic.mmdbid_t.length > 5) {
|
|
25682
|
-
url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_t + "-F1-
|
|
25686
|
+
url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_t + "-F1-model_v3.pdb";
|
|
25683
25687
|
|
|
25684
25688
|
targetAjax = $.ajax({
|
|
25685
25689
|
url: url_t,
|
|
@@ -25717,7 +25721,7 @@ class ChainalignParser {
|
|
|
25717
25721
|
|
|
25718
25722
|
let url_q, queryAjax;
|
|
25719
25723
|
if(ic.mmdbid_q.length > 5) {
|
|
25720
|
-
url_q = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_q + "-F1-
|
|
25724
|
+
url_q = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_q + "-F1-model_v3.pdb";
|
|
25721
25725
|
|
|
25722
25726
|
queryAjax = $.ajax({
|
|
25723
25727
|
url: url_q,
|
|
@@ -26020,7 +26024,7 @@ class ChainalignParser {
|
|
|
26020
26024
|
let structure = ic.structArray[i];
|
|
26021
26025
|
|
|
26022
26026
|
if(isNaN(structure) && structure.length > 5) {
|
|
26023
|
-
url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.structArray[i] + "-F1-
|
|
26027
|
+
url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.structArray[i] + "-F1-model_v3.pdb";
|
|
26024
26028
|
|
|
26025
26029
|
targetAjax = $.ajax({
|
|
26026
26030
|
url: url_t,
|
|
@@ -26085,6 +26089,8 @@ class ChainalignParser {
|
|
|
26085
26089
|
let hAtoms = {}, hAtomsTmp = {};
|
|
26086
26090
|
let bLastQuery = false;
|
|
26087
26091
|
|
|
26092
|
+
ic.opts['color'] = (structArray.length == 1) ? 'chain' : 'structure';
|
|
26093
|
+
|
|
26088
26094
|
for(let i = 0, il = structArray.length; i < il; ++i) {
|
|
26089
26095
|
if(i == structArray.length - 1) bLastQuery = true;
|
|
26090
26096
|
|
|
@@ -26097,10 +26103,11 @@ class ChainalignParser {
|
|
|
26097
26103
|
targetOrQuery = 'query';
|
|
26098
26104
|
bAppend = true;
|
|
26099
26105
|
}
|
|
26100
|
-
|
|
26106
|
+
|
|
26101
26107
|
//if(structArray[i].length > 4) {
|
|
26102
26108
|
if(structArray[i].length > 5) { // PDB ID plus postfix could be 5
|
|
26103
|
-
let bNoDssp = true;
|
|
26109
|
+
//let bNoDssp = true;
|
|
26110
|
+
let bNoDssp = false; // get secondary structure info
|
|
26104
26111
|
hAtomsTmp = ic.pdbParserCls.loadPdbData(queryDataArray[i], structArray[i], false, bAppend, targetOrQuery, bLastQuery, bNoDssp);
|
|
26105
26112
|
}
|
|
26106
26113
|
else {
|
|
@@ -26113,7 +26120,7 @@ class ChainalignParser {
|
|
|
26113
26120
|
|
|
26114
26121
|
// calculate secondary structures with applyCommandDssp
|
|
26115
26122
|
if(bQuery && me.cfg.matchedchains) {
|
|
26116
|
-
|
|
26123
|
+
// $.when(ic.pdbParserCls.applyCommandDssp(true)).then(function() {
|
|
26117
26124
|
let bRealign = true, bPredefined = true;
|
|
26118
26125
|
ic.realignParserCls.realignChainOnSeqAlign(undefined, ic.chainidArray, bRealign, bPredefined);
|
|
26119
26126
|
// reset annotations
|
|
@@ -26122,11 +26129,10 @@ class ChainalignParser {
|
|
|
26122
26129
|
if($('#' + ic.pre + 'dl_selectannotations').dialog( 'isOpen' )) {
|
|
26123
26130
|
$('#' + ic.pre + 'dl_selectannotations').dialog( 'close' );
|
|
26124
26131
|
}
|
|
26125
|
-
});
|
|
26126
|
-
}
|
|
26127
|
-
else {
|
|
26128
|
-
ic.pdbParserCls.applyCommandDssp(true);
|
|
26132
|
+
//});
|
|
26129
26133
|
}
|
|
26134
|
+
|
|
26135
|
+
if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
|
|
26130
26136
|
}
|
|
26131
26137
|
}
|
|
26132
26138
|
|
|
@@ -34172,7 +34178,7 @@ class ApplyCommand {
|
|
|
34172
34178
|
else if(cmd.indexOf('realign on seq align') == 0) return 'File > Realign Selection > on Sequence Alignment';
|
|
34173
34179
|
else if(cmd.indexOf('realign') == 0) return 'File > Realign Selection > Residue by Residue';
|
|
34174
34180
|
else if(cmd.indexOf('graph interaction pairs') == 0) return hbondIntStr + ' > 2D Graph(Force-Directed)';
|
|
34175
|
-
else if(cmd.indexOf('export canvas') == 0) return 'File > Save
|
|
34181
|
+
else if(cmd.indexOf('export canvas') == 0) return 'File > Save File > iCn3D PNG Image';
|
|
34176
34182
|
else if(cmd == 'export stl file') return printStr + 'STL';
|
|
34177
34183
|
else if(cmd == 'export vrml file') return printStr + 'VRML(Color)';
|
|
34178
34184
|
else if(cmd == 'export stl stabilizer file') return printStr + 'STL W/ Stabilizers';
|
|
@@ -34507,7 +34513,9 @@ class SelectByCommand {
|
|
|
34507
34513
|
bResidueId = true;
|
|
34508
34514
|
}
|
|
34509
34515
|
else {
|
|
34510
|
-
if(residueStrArray[j]
|
|
34516
|
+
//if(residueStrArray[j].length > 1 && residueStrArray[j][0] === '3' && (residueStrArray[j].length - 1) % 3 === 0) { // three letter residue string, such as :3LysArg
|
|
34517
|
+
if(residueStrArray[j].length > 1 && residueStrArray[j][0] === '3'
|
|
34518
|
+
&& isNaN(residueStrArray[j][1]) && residueStrArray[j][0] !== '-') { // three letter residue string, such as :3LysArg or :3ZN, but not :30 neither :3-10
|
|
34511
34519
|
let tmpStr = residueStrArray[j].toUpperCase();
|
|
34512
34520
|
threeLetterResidueStr = tmpStr.substr(1);
|
|
34513
34521
|
bResidueArrayThree = true;
|
|
@@ -34623,7 +34631,8 @@ class SelectByCommand {
|
|
|
34623
34631
|
}
|
|
34624
34632
|
else if(bResidueArrayThree) {
|
|
34625
34633
|
let threeLetter = me.utilsCls.residueAbbr2Name(ic.chainsSeq[molecule_chain][s].name);
|
|
34626
|
-
|
|
34634
|
+
|
|
34635
|
+
chainSeq +=(threeLetter.length == 3) ? threeLetter : threeLetter.padEnd(3, '_');
|
|
34627
34636
|
}
|
|
34628
34637
|
resiArray.push(ic.chainsSeq[molecule_chain][s].resi);
|
|
34629
34638
|
}
|
|
@@ -42516,9 +42525,12 @@ class Selection {
|
|
|
42516
42525
|
|
|
42517
42526
|
//Show the selection.
|
|
42518
42527
|
showSelection() { let ic = this.icn3d, me = ic.icn3dui;
|
|
42519
|
-
ic.dAtoms = {};
|
|
42528
|
+
//ic.dAtoms = {};
|
|
42520
42529
|
|
|
42521
|
-
if(Object.keys(ic.hAtoms).length == 0)
|
|
42530
|
+
if(Object.keys(ic.hAtoms).length == 0) {
|
|
42531
|
+
//this.selectAll_base();
|
|
42532
|
+
ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
|
|
42533
|
+
}
|
|
42522
42534
|
|
|
42523
42535
|
ic.dAtoms = me.hashUtilsCls.cloneHash(ic.hAtoms);
|
|
42524
42536
|
ic.viewSelectionAtoms = me.hashUtilsCls.cloneHash(ic.hAtoms);
|
|
@@ -43159,11 +43171,14 @@ class SetStyle {
|
|
|
43159
43171
|
console.log("WebGL context was lost. Reset WebGLRenderer and launch iCn3D again.");
|
|
43160
43172
|
|
|
43161
43173
|
ic.renderer = new THREE.WebGLRenderer({
|
|
43162
|
-
|
|
43163
|
-
|
|
43164
|
-
|
|
43165
|
-
|
|
43174
|
+
canvas: ic.oriContainer.get(0), //this.container.get(0),
|
|
43175
|
+
antialias: true,
|
|
43176
|
+
preserveDrawingBuffer: true,
|
|
43177
|
+
sortObjects: false,
|
|
43178
|
+
alpha: true
|
|
43166
43179
|
});
|
|
43180
|
+
// Enable VR
|
|
43181
|
+
ic.renderer.xr.enabled = true;
|
|
43167
43182
|
|
|
43168
43183
|
ic.drawCls.draw();
|
|
43169
43184
|
|
|
@@ -44372,7 +44387,8 @@ class ApplySymd {
|
|
|
44372
44387
|
}
|
|
44373
44388
|
else { // bSymd, subset, and one chain
|
|
44374
44389
|
if(Object.keys(ic.hAtoms).length == 0) {
|
|
44375
|
-
ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
|
|
44390
|
+
//ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
|
|
44391
|
+
ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
|
|
44376
44392
|
}
|
|
44377
44393
|
|
|
44378
44394
|
// pick the first 1/order of selection
|
|
@@ -56360,11 +56376,12 @@ class SetMenu {
|
|
|
56360
56376
|
|
|
56361
56377
|
html += "<li><span>Retrieve by ID</span>";
|
|
56362
56378
|
html += "<ul>";
|
|
56379
|
+
|
|
56380
|
+
html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbafid', 'PDB/MMDB/AlphaFold IDs' + me.htmlCls.wifiStr);
|
|
56363
56381
|
html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbid', 'MMDB ID ' + me.htmlCls.wifiStr);
|
|
56364
56382
|
html += me.htmlCls.setHtmlCls.getLink('mn1_mmtfid', 'MMTF ID ' + me.htmlCls.wifiStr);
|
|
56365
56383
|
html += me.htmlCls.setHtmlCls.getLink('mn1_pdbid', 'PDB ID ' + me.htmlCls.wifiStr);
|
|
56366
56384
|
html += me.htmlCls.setHtmlCls.getLink('mn1_afid', 'AlphaFold UniProt ID ' + me.htmlCls.wifiStr);
|
|
56367
|
-
html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbafid', 'MMDB or AlphaFold IDs' + me.htmlCls.wifiStr);
|
|
56368
56385
|
if(!me.cfg.simplemenu) {
|
|
56369
56386
|
html += me.htmlCls.setHtmlCls.getLink('mn1_opmid', 'OPM PDB ID ' + me.htmlCls.wifiStr);
|
|
56370
56387
|
html += me.htmlCls.setHtmlCls.getLink('mn1_mmcifid', 'mmCIF ID ' + me.htmlCls.wifiStr);
|
|
@@ -56466,7 +56483,7 @@ class SetMenu {
|
|
|
56466
56483
|
html += "</ul>";
|
|
56467
56484
|
html += "</li>";
|
|
56468
56485
|
|
|
56469
|
-
html += "<li><span>Save
|
|
56486
|
+
html += "<li><span>Save File</span>";
|
|
56470
56487
|
html += "<ul>";
|
|
56471
56488
|
//html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas', 'iCn3D PNG Image');
|
|
56472
56489
|
|
|
@@ -57653,17 +57670,29 @@ class SetMenu {
|
|
|
57653
57670
|
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#about' target='_blank'>About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span></a></li>";
|
|
57654
57671
|
|
|
57655
57672
|
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery' target='_blank'>Live Gallery " + me.htmlCls.wifiStr + "</a></li>";
|
|
57673
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#videos' target='_blank'>iCn3D Videos</a></li>";
|
|
57674
|
+
|
|
57675
|
+
html += "<li><span>FAQ</span>";
|
|
57656
57676
|
|
|
57657
|
-
html += "<li><span>Tutorial</span>";
|
|
57658
57677
|
html += "<ul>";
|
|
57659
|
-
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#
|
|
57660
|
-
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#
|
|
57661
|
-
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#
|
|
57662
|
-
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#
|
|
57678
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#viewstru' target='_blank'><span>View structure</span></a></li>";
|
|
57679
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#tfstru' target='_blank'><span>Transform Structure</span></a></li>";
|
|
57680
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#selsubset' target='_blank'><span>Select Subsets</span></a></li>";
|
|
57681
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#changestylecolor' target='_blank'><span>Change Style/Color</span></a></li>";
|
|
57682
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#saveview' target='_blank'><span>Save Work</span></a></li>";
|
|
57683
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#showanno' target='_blank'><span>Show Annotations</span></a></li>";
|
|
57684
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#exportanno' target='_blank'><span>Export Annotations</span></a></li>";
|
|
57685
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#interanalysis' target='_blank'><span>Interactions Analysis</span></a></li>";
|
|
57686
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#mutationanalysis' target='_blank'><span>Mutation Analysis</span></a></li>";
|
|
57687
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#elecpot' target='_blank'><span>Electrostatic Pot.</span></a></li>";
|
|
57688
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#simivast' target='_blank'><span>Similar PDB</span></a></li>";
|
|
57689
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#simifoldseek' target='_blank'><span>Similar AlphaFold/PDB</span></a></li>";
|
|
57690
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#alignmul' target='_blank'><span>Align Multiple Structures</span></a></li>";
|
|
57691
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#batchanalysis' target='_blank'><span>Batch Analysis</span></a></li>";
|
|
57692
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#embedicn3d' target='_blank'><span>Embed iCn3D</span></a></li>";
|
|
57663
57693
|
html += "</ul>";
|
|
57664
|
-
html += "</li>";
|
|
57665
57694
|
|
|
57666
|
-
html += liStr + "https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
|
|
57695
|
+
//html += liStr + "https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
|
|
57667
57696
|
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#citing' target='_blank'>Citing iCn3D</a></li>";
|
|
57668
57697
|
|
|
57669
57698
|
html += "<li><span>Source Code</span>";
|
|
@@ -57677,7 +57706,10 @@ class SetMenu {
|
|
|
57677
57706
|
if(!me.cfg.simplemenu) {
|
|
57678
57707
|
html += "<li><span>Develop</span>";
|
|
57679
57708
|
html += "<ul>";
|
|
57680
|
-
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUse' target='_blank'>
|
|
57709
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUse' target='_blank'>Embed iCn3D</a></li>";
|
|
57710
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#parameters' target='_blank'>URL Parameters</a></li>";
|
|
57711
|
+
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#commands' target='_blank'>Commands</a></li>";
|
|
57712
|
+
|
|
57681
57713
|
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#datastructure' target='_blank'>Data Structure</a></li>";
|
|
57682
57714
|
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#classstructure' target='_blank'>Class Structure</a></li>";
|
|
57683
57715
|
html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#addclass' target='_blank'>Add New Classes</a></li>";
|
|
@@ -58445,8 +58477,8 @@ class SetDialog {
|
|
|
58445
58477
|
html += "</div>";
|
|
58446
58478
|
|
|
58447
58479
|
html += me.htmlCls.divStr + "dl_foldseek' class='" + dialogClass + "' style='max-width:500px'>";
|
|
58448
|
-
html += 'Note: You can search similar PDB or AlphaFold structures for any structure at the fast <a href="https://search.foldseek.com/search" target="_blank">Foldseek</a> web server. <br><br>Once you see the structure neighbors, you can view the alignment in iCn3D by inputing a list of chain IDs below. <br><br>The PDB chain IDs are the same as the record names such as "1hho_A". The
|
|
58449
|
-
html += "Chain ID List: " + me.htmlCls.inputTextStr + "id='" + me.pre + "foldseekchainids' value='
|
|
58480
|
+
html += 'Note: You can search similar PDB or AlphaFold structures for any structure at the fast <a href="https://search.foldseek.com/search" target="_blank">Foldseek</a> web server. <br><br>Once you see the structure neighbors, you can view the alignment in iCn3D by inputing a list of PDB chain IDs or AlphaFold UniProt IDs below. <br><br>The PDB chain IDs are the same as the record names such as "1hho_A". The UniProt ID is the text between "AF-" and "-F1". For example, the UniProt ID for the record name "AF-P69905-F1-model_v3" is "P69905".<br><br>';
|
|
58481
|
+
html += "Chain ID List: " + me.htmlCls.inputTextStr + "id='" + me.pre + "foldseekchainids' value='P69905,P01942,1hho_A' size=30> ";
|
|
58450
58482
|
html += me.htmlCls.buttonStr + "reload_foldseek'>Align</button>";
|
|
58451
58483
|
html += "</div>";
|
|
58452
58484
|
|
|
@@ -58568,11 +58600,19 @@ class SetDialog {
|
|
|
58568
58600
|
html += 'Please specify the mutations with a comma separated mutation list. Each mutation can be specified as "[PDB ID or AlphaFold UniProt ID]_[Chain ID]_[Residue Number]_[One Letter Mutatnt Residue]". E.g., the mutation of N501Y in the E chain of PDB 6M0J can be specified as "6M0J_E_501_Y". For AlphaFold structures, the "Chain ID" is "A".<br/><br/>';
|
|
58569
58601
|
html += "<div style='display:inline-block; width:110px'>Mutations: </div>" + me.htmlCls.inputTextStr + "id='" + me.pre + "mutationids' value='6M0J_E_484_K,6M0J_E_501_Y,6M0J_E_417_N' size=50><br/><br/>";
|
|
58570
58602
|
|
|
58571
|
-
html += "<b>Data Source</b>: <select id='" + me.pre + "idsource'>";
|
|
58572
|
-
html += "<option value='mmdbid' selected>PDB ID</option>";
|
|
58573
|
-
html += "<option value='afid'>AlphaFold UniProt ID</option>";
|
|
58574
|
-
html += "</select><br/><br/>";
|
|
58575
|
-
|
|
58603
|
+
// html += "<b>Data Source</b>: <select id='" + me.pre + "idsource'>";
|
|
58604
|
+
// html += "<option value='mmdbid' selected>PDB ID</option>";
|
|
58605
|
+
// html += "<option value='afid'>AlphaFold UniProt ID</option>";
|
|
58606
|
+
// html += "</select><br/><br/>";
|
|
58607
|
+
|
|
58608
|
+
html += '<b>ID Type</b>: ';
|
|
58609
|
+
html += '<input type="radio" name="' + me.pre + 'idsource" id="' + me.pre + 'type_mmdbid" value="mmdbid" checked>PDB ID';
|
|
58610
|
+
html += '<input type="radio" name="' + me.pre + 'idsource" id="' + me.pre + 'type_afid" value="afid" style="margin-left:20px">AlphaFold UniProt ID<br><br>';
|
|
58611
|
+
|
|
58612
|
+
html += '<b>Show Mutation in</b>: ';
|
|
58613
|
+
html += '<input type="radio" name="' + me.pre + 'pdbsource" id="' + me.pre + 'showin_currentpage" value="currentpage">Current Page';
|
|
58614
|
+
html += '<input type="radio" name="' + me.pre + 'pdbsource" id="' + me.pre + 'showin_newpage" value="newpage" style="margin-left:20px" checked>New Page<br><br>';
|
|
58615
|
+
|
|
58576
58616
|
html += me.htmlCls.buttonStr + "reload_mutation_3d' title='Show the mutations in 3D using the scap program'>3D with scap</button>";
|
|
58577
58617
|
html += me.htmlCls.buttonStr + "reload_mutation_inter' style='margin-left:20px' title='Show the mutations in 3D and the change of interactions'>Interactions</button>";
|
|
58578
58618
|
html += me.htmlCls.buttonStr + "reload_mutation_pdb' style='margin-left:20px' title='Show the mutations in 3D and export the PDB of the mutant within 10 angstrom'>PDB</button>";
|
|
@@ -58656,7 +58696,7 @@ class SetDialog {
|
|
|
58656
58696
|
html += "</div>";
|
|
58657
58697
|
|
|
58658
58698
|
html += me.htmlCls.divStr + "dl_yournote' class='" + dialogClass + "'>";
|
|
58659
|
-
html += "Your note will be saved in the HTML file when you click \"File > Save
|
|
58699
|
+
html += "Your note will be saved in the HTML file when you click \"File > Save File > iCn3D PNG Image\".<br><br>";
|
|
58660
58700
|
html += "<textarea id='" + me.pre + "yournote' rows='5' style='width: 100%; height: " +(me.htmlCls.LOG_HEIGHT) + "px; padding: 0px; border: 0px;' placeholder='Enter your note here'></textarea><br>";
|
|
58661
58701
|
html += me.htmlCls.buttonStr + "applyyournote'>Save</button>";
|
|
58662
58702
|
html += "</div>";
|
|
@@ -59460,6 +59500,17 @@ class Events {
|
|
|
59460
59500
|
}
|
|
59461
59501
|
}
|
|
59462
59502
|
|
|
59503
|
+
convertUniProtInChains(alignment) { let me = this.icn3dui; me.icn3d;
|
|
59504
|
+
let idArray = alignment.split(',');
|
|
59505
|
+
let alignment_final = '';
|
|
59506
|
+
for(let i = 0, il = idArray.length; i < il; ++i) {
|
|
59507
|
+
alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
|
|
59508
|
+
if(i < il - 1) alignment_final += ',';
|
|
59509
|
+
}
|
|
59510
|
+
|
|
59511
|
+
return alignment_final;
|
|
59512
|
+
}
|
|
59513
|
+
|
|
59463
59514
|
searchSeq() { let me = this.icn3dui, ic = me.icn3d;
|
|
59464
59515
|
let select = $("#" + me.pre + "search_seq").val();
|
|
59465
59516
|
if(isNaN(select) && select.indexOf('$') == -1 && select.indexOf('.') == -1 && select.indexOf(':') == -1 && select.indexOf('@') == -1) {
|
|
@@ -59930,8 +59981,16 @@ class Events {
|
|
|
59930
59981
|
me.myEventCls.onIds("#" + me.pre + "reload_foldseek", "click", function(e) { me.icn3d;
|
|
59931
59982
|
e.preventDefault();
|
|
59932
59983
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
59933
|
-
|
|
59934
|
-
|
|
59984
|
+
|
|
59985
|
+
// me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + $("#" + me.pre + "foldseekchainids").val(), true);
|
|
59986
|
+
// window.open(hostUrl + '?chainalign=' + $("#" + me.pre + "foldseekchainids").val(), '_self');
|
|
59987
|
+
|
|
59988
|
+
|
|
59989
|
+
let alignment = $("#" + me.pre + "foldseekchainids").val();
|
|
59990
|
+
let alignment_final = thisClass.convertUniProtInChains(alignment);
|
|
59991
|
+
|
|
59992
|
+
me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + alignment_final, true);
|
|
59993
|
+
window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&showalignseq=1&bu=0', '_self');
|
|
59935
59994
|
});
|
|
59936
59995
|
|
|
59937
59996
|
me.myEventCls.onIds("#" + me.pre + "reload_mmtf", "click", function(e) { me.icn3d;
|
|
@@ -60073,12 +60132,7 @@ class Events {
|
|
|
60073
60132
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60074
60133
|
|
|
60075
60134
|
let alignment = $("#" + me.pre + "chainalignids").val();
|
|
60076
|
-
let
|
|
60077
|
-
let alignment_final = '';
|
|
60078
|
-
for(let i = 0, il = idArray.length; i < il; ++i) {
|
|
60079
|
-
alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
|
|
60080
|
-
if(i < il - 1) alignment_final += ',';
|
|
60081
|
-
}
|
|
60135
|
+
let alignment_final = thisClass.convertUniProtInChains(alignment);
|
|
60082
60136
|
let resalign = $("#" + me.pre + "resalignids").val();
|
|
60083
60137
|
let predefinedres = $("#" + me.pre + "predefinedres").val().trim().replace(/\n/g, '; ');
|
|
60084
60138
|
if(predefinedres && alignment_final.split(',').length - 1 != predefinedres.split('; ').length) {
|
|
@@ -60096,12 +60150,7 @@ class Events {
|
|
|
60096
60150
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60097
60151
|
|
|
60098
60152
|
let alignment = $("#" + me.pre + "chainalignids").val();
|
|
60099
|
-
let
|
|
60100
|
-
let alignment_final = '';
|
|
60101
|
-
for(let i = 0, il = idArray.length; i < il; ++i) {
|
|
60102
|
-
alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
|
|
60103
|
-
if(i < il - 1) alignment_final += ',';
|
|
60104
|
-
}
|
|
60153
|
+
let alignment_final = thisClass.convertUniProtInChains(alignment);
|
|
60105
60154
|
|
|
60106
60155
|
me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef ", false);
|
|
60107
60156
|
window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
|
|
@@ -60112,12 +60161,7 @@ class Events {
|
|
|
60112
60161
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60113
60162
|
|
|
60114
60163
|
let alignment = $("#" + me.pre + "chainalignids2").val();
|
|
60115
|
-
let
|
|
60116
|
-
let alignment_final = '';
|
|
60117
|
-
for(let i = 0, il = idArray.length; i < il; ++i) {
|
|
60118
|
-
alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
|
|
60119
|
-
if(i < il - 1) alignment_final += ',';
|
|
60120
|
-
}
|
|
60164
|
+
let alignment_final = thisClass.convertUniProtInChains(alignment);
|
|
60121
60165
|
let resalign = $("#" + me.pre + "resalignids").val();
|
|
60122
60166
|
|
|
60123
60167
|
me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues " + resalign + " | resdef ", false);
|
|
@@ -60129,12 +60173,7 @@ class Events {
|
|
|
60129
60173
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60130
60174
|
|
|
60131
60175
|
let alignment = $("#" + me.pre + "chainalignids3").val();
|
|
60132
|
-
let
|
|
60133
|
-
let alignment_final = '';
|
|
60134
|
-
for(let i = 0, il = idArray.length; i < il; ++i) {
|
|
60135
|
-
alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
|
|
60136
|
-
if(i < il - 1) alignment_final += ',';
|
|
60137
|
-
}
|
|
60176
|
+
let alignment_final = thisClass.convertUniProtInChains(alignment);
|
|
60138
60177
|
|
|
60139
60178
|
let predefinedres = $("#" + me.pre + "predefinedres").val().trim().replace(/\n/g, '; ');
|
|
60140
60179
|
if(predefinedres && alignment_final.split(',').length - 1 != predefinedres.split('; ').length) {
|
|
@@ -60151,66 +60190,133 @@ class Events {
|
|
|
60151
60190
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60152
60191
|
|
|
60153
60192
|
let alignment = $("#" + me.pre + "chainalignids").val();
|
|
60154
|
-
let
|
|
60155
|
-
let alignment_final = '';
|
|
60156
|
-
for(let i = 0, il = idArray.length; i < il; ++i) {
|
|
60157
|
-
alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
|
|
60158
|
-
if(i < il - 1) alignment_final += ',';
|
|
60159
|
-
}
|
|
60193
|
+
let alignment_final = thisClass.convertUniProtInChains(alignment);
|
|
60160
60194
|
|
|
60161
60195
|
me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef | align tmalign", false);
|
|
60162
60196
|
window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
|
|
60163
60197
|
});
|
|
60164
60198
|
|
|
60165
|
-
me.myEventCls.onIds("#" + me.pre + "reload_mutation_3d", "click", function(e) { me.icn3d;
|
|
60199
|
+
me.myEventCls.onIds("#" + me.pre + "reload_mutation_3d", "click", function(e) { let ic = me.icn3d;
|
|
60166
60200
|
e.preventDefault();
|
|
60167
60201
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60168
60202
|
let mutationids = $("#" + me.pre + "mutationids").val();
|
|
60169
|
-
let idsource = $("#" + me.pre + "idsource").val();
|
|
60170
|
-
let
|
|
60171
|
-
|
|
60172
|
-
|
|
60173
|
-
|
|
60203
|
+
//let idsource = $("#" + me.pre + "idsource").val();
|
|
60204
|
+
let idsource, pdbsource;
|
|
60205
|
+
if($("#" + me.pre + "type_mmdbid").is(":checked")) {
|
|
60206
|
+
idsource = 'mmdbid';
|
|
60207
|
+
}
|
|
60208
|
+
else {
|
|
60209
|
+
idsource = 'afid';
|
|
60210
|
+
}
|
|
60211
|
+
if($("#" + me.pre + "showin_currentpage").is(":checked")) {
|
|
60212
|
+
pdbsource = 'currentpage';
|
|
60213
|
+
}
|
|
60214
|
+
else {
|
|
60215
|
+
pdbsource = 'newpage';
|
|
60216
|
+
}
|
|
60217
|
+
|
|
60218
|
+
if(pdbsource == 'currentpage') {
|
|
60219
|
+
let snp = mutationids;
|
|
60220
|
+
|
|
60221
|
+
ic.scapCls.retrieveScap(snp);
|
|
60222
|
+
me.htmlCls.clickMenuCls.setLogCmd('scap 3d ' + snp, true);
|
|
60223
|
+
me.htmlCls.clickMenuCls.setLogCmd("select displayed set", true);
|
|
60224
|
+
}
|
|
60225
|
+
else {
|
|
60226
|
+
let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
|
|
60227
|
+
me.htmlCls.clickMenuCls.setLogCmd("3d of mutation " + mutationids, false);
|
|
60228
|
+
window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
|
|
60229
|
+
}
|
|
60174
60230
|
});
|
|
60175
60231
|
|
|
60176
|
-
me.myEventCls.onIds("#" + me.pre + "reload_mutation_pdb", "click", function(e) { me.icn3d;
|
|
60232
|
+
me.myEventCls.onIds("#" + me.pre + "reload_mutation_pdb", "click", function(e) { let ic = me.icn3d;
|
|
60177
60233
|
e.preventDefault();
|
|
60178
60234
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60179
60235
|
let mutationids = $("#" + me.pre + "mutationids").val();
|
|
60180
|
-
let idsource = $("#" + me.pre + "idsource").val();
|
|
60181
|
-
let
|
|
60182
|
-
|
|
60183
|
-
|
|
60184
|
-
|
|
60236
|
+
//let idsource = $("#" + me.pre + "idsource").val();
|
|
60237
|
+
let idsource, pdbsource;
|
|
60238
|
+
if($("#" + me.pre + "type_mmdbid").is(":checked")) {
|
|
60239
|
+
idsource = 'mmdbid';
|
|
60240
|
+
}
|
|
60241
|
+
else {
|
|
60242
|
+
idsource = 'afid';
|
|
60243
|
+
}
|
|
60244
|
+
if($("#" + me.pre + "showin_currentpage").is(":checked")) {
|
|
60245
|
+
pdbsource = 'currentpage';
|
|
60246
|
+
}
|
|
60247
|
+
else {
|
|
60248
|
+
pdbsource = 'newpage';
|
|
60249
|
+
}
|
|
60250
|
+
|
|
60251
|
+
if(pdbsource == 'currentpage') {
|
|
60252
|
+
let snp = mutationids;
|
|
60253
|
+
|
|
60254
|
+
let bPdb = true;
|
|
60255
|
+
ic.scapCls.retrieveScap(snp, undefined, bPdb);
|
|
60256
|
+
me.htmlCls.clickMenuCls.setLogCmd('scap pdb ' + snp, true);
|
|
60257
|
+
}
|
|
60258
|
+
else {
|
|
60259
|
+
let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
|
|
60260
|
+
me.htmlCls.clickMenuCls.setLogCmd("pdb of mutation " + mutationids, false);
|
|
60261
|
+
window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
|
|
60262
|
+
}
|
|
60185
60263
|
});
|
|
60186
60264
|
|
|
60187
60265
|
me.myEventCls.onIds("#" + me.pre + "reload_mutation_inter", "click", function(e) { let ic = me.icn3d;
|
|
60188
60266
|
e.preventDefault();
|
|
60189
60267
|
if(!me.cfg.notebook) dialog.dialog( "close" );
|
|
60190
60268
|
let mutationids = $("#" + me.pre + "mutationids").val();
|
|
60191
|
-
let idsource = $("#" + me.pre + "idsource").val();
|
|
60192
|
-
|
|
60193
|
-
|
|
60194
|
-
|
|
60195
|
-
|
|
60196
|
-
|
|
60197
|
-
|
|
60198
|
-
residArray.push(resid);
|
|
60269
|
+
//let idsource = $("#" + me.pre + "idsource").val();
|
|
60270
|
+
let idsource, pdbsource;
|
|
60271
|
+
if($("#" + me.pre + "type_mmdbid").is(":checked")) {
|
|
60272
|
+
idsource = 'mmdbid';
|
|
60273
|
+
}
|
|
60274
|
+
else {
|
|
60275
|
+
idsource = 'afid';
|
|
60199
60276
|
}
|
|
60277
|
+
if($("#" + me.pre + "showin_currentpage").is(":checked")) {
|
|
60278
|
+
pdbsource = 'currentpage';
|
|
60279
|
+
}
|
|
60280
|
+
else {
|
|
60281
|
+
pdbsource = 'newpage';
|
|
60282
|
+
}
|
|
60200
60283
|
|
|
60201
|
-
|
|
60284
|
+
if(pdbsource == 'currentpage') {
|
|
60285
|
+
let snp = mutationids;
|
|
60202
60286
|
|
|
60203
|
-
|
|
60204
|
-
|
|
60205
|
-
|
|
60206
|
-
|
|
60287
|
+
let bInteraction = true;
|
|
60288
|
+
ic.scapCls.retrieveScap(snp, bInteraction);
|
|
60289
|
+
me.htmlCls.clickMenuCls.setLogCmd('scap interaction ' + snp, true);
|
|
60290
|
+
|
|
60291
|
+
let idArray = snp.split('_'); //stru_chain_resi_snp
|
|
60292
|
+
let select = '.' + idArray[1] + ':' + idArray[2];
|
|
60293
|
+
let name = 'snp_' + idArray[1] + '_' + idArray[2];
|
|
60294
|
+
me.htmlCls.clickMenuCls.setLogCmd("select " + select + " | name " + name, true);
|
|
60295
|
+
me.htmlCls.clickMenuCls.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5", true);
|
|
60296
|
+
me.htmlCls.clickMenuCls.setLogCmd("adjust dialog dl_linegraph", true);
|
|
60297
|
+
me.htmlCls.clickMenuCls.setLogCmd("select displayed set", true);
|
|
60207
60298
|
}
|
|
60208
|
-
|
|
60299
|
+
else {
|
|
60300
|
+
let mutationArray = mutationids.split(',');
|
|
60301
|
+
let residArray = [];
|
|
60302
|
+
for(let i = 0, il = mutationArray.length; i < il; ++i) {
|
|
60303
|
+
let pos = mutationArray[i].lastIndexOf('_');
|
|
60304
|
+
let resid = mutationArray[i].substr(0, pos);
|
|
60305
|
+
residArray.push(resid);
|
|
60306
|
+
}
|
|
60307
|
+
|
|
60308
|
+
let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
|
|
60209
60309
|
|
|
60210
|
-
|
|
60211
|
-
|
|
60212
|
-
|
|
60213
|
-
|
|
60310
|
+
// if no structures are loaded yet
|
|
60311
|
+
if(!ic.structures) {
|
|
60312
|
+
ic.structures = {};
|
|
60313
|
+
ic.structures[mmdbid] = 1;
|
|
60314
|
+
}
|
|
60315
|
+
ic.resid2specCls.residueids2spec(residArray);
|
|
60316
|
+
|
|
60317
|
+
me.htmlCls.clickMenuCls.setLogCmd("interaction change of mutation " + mutationids, false);
|
|
60318
|
+
window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
|
|
60319
|
+
}
|
|
60214
60320
|
});
|
|
60215
60321
|
|
|
60216
60322
|
// },
|
|
@@ -65893,7 +65999,7 @@ class iCn3D {
|
|
|
65893
65999
|
if(bWebGL){
|
|
65894
66000
|
//https://discourse.threejs.org/t/three-js-r128-ext-frag-depth-and-angle-instanced-arrays-extensions-are-not-supported/26037
|
|
65895
66001
|
//this.renderer = new THREE.WebGL1Renderer({
|
|
65896
|
-
if ( bWebGL2 && bVR) {
|
|
66002
|
+
if ( bWebGL2 && bVR) {
|
|
65897
66003
|
this.renderer = new THREE.WebGLRenderer({
|
|
65898
66004
|
canvas: this.oriContainer.get(0), //this.container.get(0),
|
|
65899
66005
|
antialias: true,
|
|
@@ -66508,7 +66614,7 @@ iCn3D.prototype.resetConfig = function () { let ic = this, me = ic.icn3dui;
|
|
|
66508
66614
|
}
|
|
66509
66615
|
|
|
66510
66616
|
if(me.cfg.blast_rep_id !== undefined) this.opts['color'] = 'conservation';
|
|
66511
|
-
if(me.cfg.mmdbafid !== undefined)
|
|
66617
|
+
if(me.cfg.mmdbafid !== undefined && ic.structures) ic.opts['color'] = (Object.keys(ic.structures).length == 1) ? 'chain' : 'structure';
|
|
66512
66618
|
|
|
66513
66619
|
if(me.cfg.options !== undefined) $.extend(this.opts, me.cfg.options);
|
|
66514
66620
|
};
|
|
@@ -66525,7 +66631,7 @@ class iCn3DUI {
|
|
|
66525
66631
|
//even when multiple iCn3D viewers are shown together.
|
|
66526
66632
|
this.pre = this.cfg.divid + "_";
|
|
66527
66633
|
|
|
66528
|
-
this.REVISION = '3.14.
|
|
66634
|
+
this.REVISION = '3.14.3';
|
|
66529
66635
|
|
|
66530
66636
|
// In nodejs, iCn3D defines "window = {navigator: {}}"
|
|
66531
66637
|
this.bNode = (Object.keys(window).length < 2) ? true : false;
|