molstar 3.1.0 → 3.2.0

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.
Files changed (94) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +194 -194
  3. package/build/viewer/embedded.html +43 -43
  4. package/build/viewer/index.html +106 -106
  5. package/build/viewer/molstar.js +1 -1
  6. package/lib/apps/docking-viewer/index.html +36 -36
  7. package/lib/apps/viewer/embedded.html +43 -43
  8. package/lib/apps/viewer/index.html +106 -106
  9. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +2 -2
  10. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
  11. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +1 -1
  12. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +22 -0
  13. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +22 -0
  14. package/lib/commonjs/mol-model/structure/export/categories/atom_site.js +68 -1
  15. package/lib/commonjs/mol-model/structure/structure/util/superposition-sifts-mapping.d.ts +21 -0
  16. package/lib/commonjs/mol-model/structure/structure/util/{superposition-db-mapping.js → superposition-sifts-mapping.js} +40 -20
  17. package/lib/commonjs/mol-model-formats/structure/basic/schema.d.ts +5 -0
  18. package/lib/commonjs/mol-model-formats/structure/common/property.d.ts +5 -2
  19. package/lib/commonjs/mol-model-formats/structure/common/property.js +20 -8
  20. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.d.ts +1 -0
  21. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.js +2 -1
  22. package/lib/commonjs/mol-model-props/sequence/{best-database-mapping.d.ts → sifts-mapping.d.ts} +7 -5
  23. package/lib/commonjs/mol-model-props/sequence/{best-database-mapping.js → sifts-mapping.js} +29 -26
  24. package/lib/{mol-model-props/sequence/themes/best-database-mapping.d.ts → commonjs/mol-model-props/sequence/themes/sifts-mapping.d.ts} +5 -5
  25. package/lib/commonjs/mol-model-props/sequence/themes/{best-database-mapping.js → sifts-mapping.js} +22 -22
  26. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/sequence/{best-database-mapping.d.ts → sifts-mapping.d.ts} +1 -1
  27. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/sequence/{best-database-mapping.js → sifts-mapping.js} +11 -11
  28. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props.d.ts +1 -1
  29. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props.js +2 -2
  30. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  31. package/lib/commonjs/mol-plugin-ui/structure/superposition.d.ts +4 -1
  32. package/lib/commonjs/mol-plugin-ui/structure/superposition.js +66 -30
  33. package/lib/commonjs/mol-script/language/builder.d.ts +1 -0
  34. package/lib/examples/alpha-orbitals/index.html +61 -61
  35. package/lib/examples/basic-wrapper/index.html +137 -137
  36. package/lib/examples/lighting/index.html +88 -88
  37. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  38. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +2 -2
  39. package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
  40. package/lib/mol-geo/geometry/points/points.d.ts +1 -1
  41. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +22 -0
  42. package/lib/mol-io/reader/cif/schema/mmcif.js +22 -0
  43. package/lib/mol-model/structure/export/categories/atom_site.js +68 -1
  44. package/lib/mol-model/structure/structure/util/superposition-sifts-mapping.d.ts +21 -0
  45. package/lib/mol-model/structure/structure/util/{superposition-db-mapping.js → superposition-sifts-mapping.js} +38 -18
  46. package/lib/mol-model-formats/structure/basic/schema.d.ts +5 -0
  47. package/lib/mol-model-formats/structure/common/property.d.ts +5 -2
  48. package/lib/mol-model-formats/structure/common/property.js +20 -8
  49. package/lib/mol-model-formats/structure/property/bonds/index-pair.d.ts +1 -0
  50. package/lib/mol-model-formats/structure/property/bonds/index-pair.js +2 -1
  51. package/lib/mol-model-props/sequence/{best-database-mapping.d.ts → sifts-mapping.d.ts} +7 -5
  52. package/lib/mol-model-props/sequence/{best-database-mapping.js → sifts-mapping.js} +28 -25
  53. package/lib/{commonjs/mol-model-props/sequence/themes/best-database-mapping.d.ts → mol-model-props/sequence/themes/sifts-mapping.d.ts} +5 -5
  54. package/lib/mol-model-props/sequence/themes/{best-database-mapping.js → sifts-mapping.js} +19 -19
  55. package/lib/mol-plugin/behavior/dynamic/custom-props/sequence/{best-database-mapping.d.ts → sifts-mapping.d.ts} +1 -1
  56. package/lib/mol-plugin/behavior/dynamic/custom-props/sequence/{best-database-mapping.js → sifts-mapping.js} +8 -8
  57. package/lib/mol-plugin/behavior/dynamic/custom-props.d.ts +1 -1
  58. package/lib/mol-plugin/behavior/dynamic/custom-props.js +1 -1
  59. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  60. package/lib/mol-plugin/version.js +2 -2
  61. package/lib/mol-plugin-ui/skin/base/base.scss +32 -32
  62. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  63. package/lib/mol-plugin-ui/skin/base/components/controls.scss +418 -418
  64. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  65. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  66. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  67. package/lib/mol-plugin-ui/skin/base/components/misc.scss +643 -643
  68. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  69. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  70. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  71. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  72. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  73. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +127 -127
  74. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  75. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  76. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  77. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  78. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  79. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  80. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  81. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  82. package/lib/mol-plugin-ui/skin/base/variables.scss +85 -85
  83. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  84. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  85. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  86. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  87. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  88. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  89. package/lib/mol-plugin-ui/structure/superposition.d.ts +4 -1
  90. package/lib/mol-plugin-ui/structure/superposition.js +66 -30
  91. package/lib/mol-script/language/builder.d.ts +1 -0
  92. package/package.json +160 -160
  93. package/lib/commonjs/mol-model/structure/structure/util/superposition-db-mapping.d.ts +0 -13
  94. package/lib/mol-model/structure/structure/util/superposition-db-mapping.d.ts +0 -13
@@ -1,138 +1,138 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
6
- <title>Mol* Plugin Wrapper</title>
7
- <style>
8
- * {
9
- margin: 0;
10
- padding: 0;
11
- box-sizing: border-box;
12
- }
13
- #app {
14
- position: absolute;
15
- left: 160px;
16
- top: 100px;
17
- width: 600px;
18
- height: 600px;
19
- border: 1px solid #ccc;
20
- }
21
-
22
- #controls {
23
- position: absolute;
24
- width: 130px;
25
- top: 10px;
26
- left: 10px;
27
- }
28
-
29
- #controls > button {
30
- display: block;
31
- width: 100%;
32
- text-align: left;
33
- }
34
-
35
- #controls > hr {
36
- margin: 5px 0;
37
- }
38
-
39
- #controls > input, #controls > select {
40
- width: 100%;
41
- display: block;
42
- }
43
- </style>
44
- <link rel="stylesheet" type="text/css" href="molstar.css" />
45
- <script type="text/javascript" src="./index.js"></script>
46
- </head>
47
- <body>
48
- <div id='controls'>
49
- <h3>Source</h3>
50
- <input type='text' id='url' placeholder='url' />
51
- <input type='text' id='assemblyId' placeholder='assembly id' />
52
- <select id='format'>
53
- <option value='mmcif' selected>mmCIF</option>
54
- <option value='pdb'>PDB</option>
55
- </select>
56
- </div>
57
- <div id="app"></div>
58
- <script>
59
- function $(id) { return document.getElementById(id); }
60
-
61
- var pdbId = '1grm', assemblyId= '1';
62
- var url = 'https://www.ebi.ac.uk/pdbe/static/entry/' + pdbId + '_updated.cif';
63
- var format = 'mmcif';
64
-
65
- $('url').value = url;
66
- $('url').onchange = function (e) { url = e.target.value; }
67
- $('assemblyId').value = assemblyId;
68
- $('assemblyId').onchange = function (e) { assemblyId = e.target.value; }
69
- $('format').value = format;
70
- $('format').onchange = function (e) { format = e.target.value; }
71
-
72
- BasicMolStarWrapper.init('app' /** or document.getElementById('app') */).then(() => {
73
- BasicMolStarWrapper.setBackground(0xffffff);
74
- });
75
-
76
- addControl('Load Asym Unit', () => BasicMolStarWrapper.load({ url: url, format: format }));
77
- addControl('Load Assembly', () => BasicMolStarWrapper.load({ url: url, format: format, assemblyId: assemblyId }));
78
-
79
- addSeparator();
80
-
81
- addHeader('Camera');
82
- addControl('Toggle Spin', () => BasicMolStarWrapper.toggleSpin());
83
-
84
- addSeparator();
85
-
86
- addHeader('Animation');
87
-
88
- // adjust this number to make the animation faster or slower
89
- // requires to "restart" the animation if changed
90
- BasicMolStarWrapper.animate.modelIndex.targetFps = 30;
91
-
92
- addControl('Play To End', () => BasicMolStarWrapper.animate.modelIndex.onceForward());
93
- addControl('Play To Start', () => BasicMolStarWrapper.animate.modelIndex.onceBackward());
94
- addControl('Play Palindrome', () => BasicMolStarWrapper.animate.modelIndex.palindrome());
95
- addControl('Play Loop', () => BasicMolStarWrapper.animate.modelIndex.loop());
96
- addControl('Stop', () => BasicMolStarWrapper.animate.modelIndex.stop());
97
-
98
- addHeader('Misc');
99
-
100
- addControl('Apply Stripes', () => BasicMolStarWrapper.coloring.applyStripes());
101
- addControl('Apply Custom Theme', () => BasicMolStarWrapper.coloring.applyCustomTheme());
102
- addControl('Default Coloring', () => BasicMolStarWrapper.coloring.applyDefault());
103
-
104
- addHeader('Interactivity');
105
- addControl('Highlight seq_id=7', () => BasicMolStarWrapper.interactivity.highlightOn());
106
- addControl('Clear Highlight', () => BasicMolStarWrapper.interactivity.clearHighlight());
107
-
108
- addHeader('Tests');
109
-
110
- addControl('Static Superposition', () => BasicMolStarWrapper.tests.staticSuperposition());
111
- addControl('Dynamic Superposition', () => BasicMolStarWrapper.tests.dynamicSuperposition());
112
- addControl('Validation Tooltip', () => BasicMolStarWrapper.tests.toggleValidationTooltip());
113
-
114
- addControl('Show Toasts', () => BasicMolStarWrapper.tests.showToasts());
115
- addControl('Hide Toasts', () => BasicMolStarWrapper.tests.hideToasts());
116
-
117
- ////////////////////////////////////////////////////////
118
-
119
- function addControl(label, action) {
120
- var btn = document.createElement('button');
121
- btn.onclick = action;
122
- btn.innerText = label;
123
- $('controls').appendChild(btn);
124
- }
125
-
126
- function addSeparator() {
127
- var hr = document.createElement('hr');
128
- $('controls').appendChild(hr);
129
- }
130
-
131
- function addHeader(header) {
132
- var h = document.createElement('h3');
133
- h.innerText = header;
134
- $('controls').appendChild(h);
135
- }
136
- </script>
137
- </body>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
6
+ <title>Mol* Plugin Wrapper</title>
7
+ <style>
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+ #app {
14
+ position: absolute;
15
+ left: 160px;
16
+ top: 100px;
17
+ width: 600px;
18
+ height: 600px;
19
+ border: 1px solid #ccc;
20
+ }
21
+
22
+ #controls {
23
+ position: absolute;
24
+ width: 130px;
25
+ top: 10px;
26
+ left: 10px;
27
+ }
28
+
29
+ #controls > button {
30
+ display: block;
31
+ width: 100%;
32
+ text-align: left;
33
+ }
34
+
35
+ #controls > hr {
36
+ margin: 5px 0;
37
+ }
38
+
39
+ #controls > input, #controls > select {
40
+ width: 100%;
41
+ display: block;
42
+ }
43
+ </style>
44
+ <link rel="stylesheet" type="text/css" href="molstar.css" />
45
+ <script type="text/javascript" src="./index.js"></script>
46
+ </head>
47
+ <body>
48
+ <div id='controls'>
49
+ <h3>Source</h3>
50
+ <input type='text' id='url' placeholder='url' />
51
+ <input type='text' id='assemblyId' placeholder='assembly id' />
52
+ <select id='format'>
53
+ <option value='mmcif' selected>mmCIF</option>
54
+ <option value='pdb'>PDB</option>
55
+ </select>
56
+ </div>
57
+ <div id="app"></div>
58
+ <script>
59
+ function $(id) { return document.getElementById(id); }
60
+
61
+ var pdbId = '1grm', assemblyId= '1';
62
+ var url = 'https://www.ebi.ac.uk/pdbe/static/entry/' + pdbId + '_updated.cif';
63
+ var format = 'mmcif';
64
+
65
+ $('url').value = url;
66
+ $('url').onchange = function (e) { url = e.target.value; }
67
+ $('assemblyId').value = assemblyId;
68
+ $('assemblyId').onchange = function (e) { assemblyId = e.target.value; }
69
+ $('format').value = format;
70
+ $('format').onchange = function (e) { format = e.target.value; }
71
+
72
+ BasicMolStarWrapper.init('app' /** or document.getElementById('app') */).then(() => {
73
+ BasicMolStarWrapper.setBackground(0xffffff);
74
+ });
75
+
76
+ addControl('Load Asym Unit', () => BasicMolStarWrapper.load({ url: url, format: format }));
77
+ addControl('Load Assembly', () => BasicMolStarWrapper.load({ url: url, format: format, assemblyId: assemblyId }));
78
+
79
+ addSeparator();
80
+
81
+ addHeader('Camera');
82
+ addControl('Toggle Spin', () => BasicMolStarWrapper.toggleSpin());
83
+
84
+ addSeparator();
85
+
86
+ addHeader('Animation');
87
+
88
+ // adjust this number to make the animation faster or slower
89
+ // requires to "restart" the animation if changed
90
+ BasicMolStarWrapper.animate.modelIndex.targetFps = 30;
91
+
92
+ addControl('Play To End', () => BasicMolStarWrapper.animate.modelIndex.onceForward());
93
+ addControl('Play To Start', () => BasicMolStarWrapper.animate.modelIndex.onceBackward());
94
+ addControl('Play Palindrome', () => BasicMolStarWrapper.animate.modelIndex.palindrome());
95
+ addControl('Play Loop', () => BasicMolStarWrapper.animate.modelIndex.loop());
96
+ addControl('Stop', () => BasicMolStarWrapper.animate.modelIndex.stop());
97
+
98
+ addHeader('Misc');
99
+
100
+ addControl('Apply Stripes', () => BasicMolStarWrapper.coloring.applyStripes());
101
+ addControl('Apply Custom Theme', () => BasicMolStarWrapper.coloring.applyCustomTheme());
102
+ addControl('Default Coloring', () => BasicMolStarWrapper.coloring.applyDefault());
103
+
104
+ addHeader('Interactivity');
105
+ addControl('Highlight seq_id=7', () => BasicMolStarWrapper.interactivity.highlightOn());
106
+ addControl('Clear Highlight', () => BasicMolStarWrapper.interactivity.clearHighlight());
107
+
108
+ addHeader('Tests');
109
+
110
+ addControl('Static Superposition', () => BasicMolStarWrapper.tests.staticSuperposition());
111
+ addControl('Dynamic Superposition', () => BasicMolStarWrapper.tests.dynamicSuperposition());
112
+ addControl('Validation Tooltip', () => BasicMolStarWrapper.tests.toggleValidationTooltip());
113
+
114
+ addControl('Show Toasts', () => BasicMolStarWrapper.tests.showToasts());
115
+ addControl('Hide Toasts', () => BasicMolStarWrapper.tests.hideToasts());
116
+
117
+ ////////////////////////////////////////////////////////
118
+
119
+ function addControl(label, action) {
120
+ var btn = document.createElement('button');
121
+ btn.onclick = action;
122
+ btn.innerText = label;
123
+ $('controls').appendChild(btn);
124
+ }
125
+
126
+ function addSeparator() {
127
+ var hr = document.createElement('hr');
128
+ $('controls').appendChild(hr);
129
+ }
130
+
131
+ function addHeader(header) {
132
+ var h = document.createElement('h3');
133
+ h.innerText = header;
134
+ $('controls').appendChild(h);
135
+ }
136
+ </script>
137
+ </body>
138
138
  </html>
@@ -1,89 +1,89 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
6
- <title>Mol* Lighting Demo</title>
7
- <style>
8
- * {
9
- margin: 0;
10
- padding: 0;
11
- box-sizing: border-box;
12
- }
13
- #app {
14
- position: absolute;
15
- width: 100%;
16
- height: 100%;
17
- }
18
-
19
- #controls {
20
- position: absolute;
21
- width: 150px;
22
- bottom: 100px;
23
- right: 50px;
24
- z-index: 10;
25
- font-family: sans-serif;
26
- font-size: smaller;
27
- }
28
-
29
- #controls > button {
30
- display: block;
31
- width: 100%;
32
- text-align: left;
33
- margin: 5px 0px;
34
- }
35
-
36
- #controls > input, #controls > select {
37
- width: 100%;
38
- display: block;
39
- }
40
- </style>
41
- <link rel="stylesheet" type="text/css" href="molstar.css" />
42
- <script type="text/javascript" src="./index.js"></script>
43
- </head>
44
- <body>
45
- <div id='controls'></div>
46
- <div id="app"></div>
47
- <script>
48
- LightingDemo.init('app').then(() => {
49
- LightingDemo.load({ url: 'https://models.rcsb.org/4KTC.bcif', assemblyId: '1' }, 5, 1.3);
50
- });
51
-
52
- addHeader('Example PDB IDs');
53
- addControl('4KTC', () => LightingDemo.load({ url: 'https://models.rcsb.org/4KTC.bcif', assemblyId: '1' }, 5, 1.3));
54
- addControl('5FJ5', () => LightingDemo.load({ url: 'https://models.rcsb.org/5FJ5.bcif', assemblyId: '1' }, 8, 1.8));
55
- addControl('1UPN', () => LightingDemo.load({ url: 'https://models.rcsb.org/1UPN.bcif', assemblyId: '1' }, 7, 1.6));
56
- addControl('1RB8', () => LightingDemo.load({ url: 'https://models.rcsb.org/1RB8.bcif', assemblyId: '1' }, 6, 1.3));
57
-
58
- addSeparator()
59
-
60
- addHeader('Lighting Presets');
61
- addControl('Illustrative', () => LightingDemo.setPreset('illustrative'));
62
- addControl('Standard', () => LightingDemo.setPreset('standard'));
63
- addControl('Ambient Occlusion', () => LightingDemo.setPreset('occlusion'));
64
-
65
- ////////////////////////////////////////////////////////
66
-
67
- function $(id) { return document.getElementById(id); }
68
-
69
- function addControl(label, action) {
70
- var btn = document.createElement('button');
71
- btn.onclick = action;
72
- btn.innerText = label;
73
- $('controls').appendChild(btn);
74
- }
75
-
76
- function addSeparator() {
77
- var hr = document.createElement('br');
78
- $('controls').appendChild(hr);
79
- }
80
-
81
- function addHeader(header) {
82
- var h = document.createElement('h3');
83
- h.innerText = header;
84
- $('controls').appendChild(h);
85
- }
86
- </script>
87
- <!-- __MOLSTAR_ANALYTICS__ -->
88
- </body>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
6
+ <title>Mol* Lighting Demo</title>
7
+ <style>
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+ #app {
14
+ position: absolute;
15
+ width: 100%;
16
+ height: 100%;
17
+ }
18
+
19
+ #controls {
20
+ position: absolute;
21
+ width: 150px;
22
+ bottom: 100px;
23
+ right: 50px;
24
+ z-index: 10;
25
+ font-family: sans-serif;
26
+ font-size: smaller;
27
+ }
28
+
29
+ #controls > button {
30
+ display: block;
31
+ width: 100%;
32
+ text-align: left;
33
+ margin: 5px 0px;
34
+ }
35
+
36
+ #controls > input, #controls > select {
37
+ width: 100%;
38
+ display: block;
39
+ }
40
+ </style>
41
+ <link rel="stylesheet" type="text/css" href="molstar.css" />
42
+ <script type="text/javascript" src="./index.js"></script>
43
+ </head>
44
+ <body>
45
+ <div id='controls'></div>
46
+ <div id="app"></div>
47
+ <script>
48
+ LightingDemo.init('app').then(() => {
49
+ LightingDemo.load({ url: 'https://models.rcsb.org/4KTC.bcif', assemblyId: '1' }, 5, 1.3);
50
+ });
51
+
52
+ addHeader('Example PDB IDs');
53
+ addControl('4KTC', () => LightingDemo.load({ url: 'https://models.rcsb.org/4KTC.bcif', assemblyId: '1' }, 5, 1.3));
54
+ addControl('5FJ5', () => LightingDemo.load({ url: 'https://models.rcsb.org/5FJ5.bcif', assemblyId: '1' }, 8, 1.8));
55
+ addControl('1UPN', () => LightingDemo.load({ url: 'https://models.rcsb.org/1UPN.bcif', assemblyId: '1' }, 7, 1.6));
56
+ addControl('1RB8', () => LightingDemo.load({ url: 'https://models.rcsb.org/1RB8.bcif', assemblyId: '1' }, 6, 1.3));
57
+
58
+ addSeparator()
59
+
60
+ addHeader('Lighting Presets');
61
+ addControl('Illustrative', () => LightingDemo.setPreset('illustrative'));
62
+ addControl('Standard', () => LightingDemo.setPreset('standard'));
63
+ addControl('Ambient Occlusion', () => LightingDemo.setPreset('occlusion'));
64
+
65
+ ////////////////////////////////////////////////////////
66
+
67
+ function $(id) { return document.getElementById(id); }
68
+
69
+ function addControl(label, action) {
70
+ var btn = document.createElement('button');
71
+ btn.onclick = action;
72
+ btn.innerText = label;
73
+ $('controls').appendChild(btn);
74
+ }
75
+
76
+ function addSeparator() {
77
+ var hr = document.createElement('br');
78
+ $('controls').appendChild(hr);
79
+ }
80
+
81
+ function addHeader(header) {
82
+ var h = document.createElement('h3');
83
+ h.innerText = header;
84
+ $('controls').appendChild(h);
85
+ }
86
+ </script>
87
+ <!-- __MOLSTAR_ANALYTICS__ -->
88
+ </body>
89
89
  </html>