index.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. <link rel="icon" href="./favicon.ico" type="image/x-icon">
  7. <title>Mol* Viewer</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. }
  14. html, body {
  15. width: 100%;
  16. height: 100%;
  17. overflow: hidden;
  18. }
  19. hr {
  20. margin: 10px;
  21. }
  22. h1, h2, h3, h4, h5 {
  23. margin-top: 5px;
  24. margin-bottom: 3px;
  25. }
  26. button {
  27. padding: 2px;
  28. }
  29. #app {
  30. position: absolute;
  31. left: 100px;
  32. top: 100px;
  33. width: 800px;
  34. height: 600px;
  35. }
  36. </style>
  37. <link rel="stylesheet" type="text/css" href="molstar.css" />
  38. </head>
  39. <body>
  40. <div id="app"></div>
  41. <script type="text/javascript" src="./molstar.js"></script>
  42. <script type="text/javascript">
  43. function getParam(name, regex) {
  44. var r = new RegExp(name + '=' + '(' + regex + ')[&]?', 'i');
  45. return decodeURIComponent(((window.location.search || '').match(r) || [])[1] || '');
  46. }
  47. var debugMode = getParam('debug-mode', '[^&]+').trim() === '1';
  48. if (debugMode) molstar.setDebugMode(debugMode);
  49. var timingMode = getParam('timing-mode', '[^&]+').trim() === '1';
  50. if (timingMode) molstar.setTimingMode(timingMode);
  51. var hideControls = getParam('hide-controls', '[^&]+').trim() === '1';
  52. var collapseLeftPanel = getParam('collapse-left-panel', '[^&]+').trim() === '1';
  53. var pdbProvider = getParam('pdb-provider', '[^&]+').trim().toLowerCase();
  54. var emdbProvider = getParam('emdb-provider', '[^&]+').trim().toLowerCase();
  55. var mapProvider = getParam('map-provider', '[^&]+').trim().toLowerCase();
  56. var pixelScale = getParam('pixel-scale', '[^&]+').trim();
  57. var pickScale = getParam('pick-scale', '[^&]+').trim();
  58. var pickPadding = getParam('pick-padding', '[^&]+').trim();
  59. var disableWboit = getParam('disable-wboit', '[^&]+').trim() === '1';
  60. var preferWebgl1 = getParam('prefer-webgl1', '[^&]+').trim() === '1' || void 0;
  61. var allowMajorPerformanceCaveat = getParam('allow-major-performance-caveat', '[^&]+').trim() === '1';
  62. molstar.Viewer.create('app', {
  63. layoutShowControls: !hideControls,
  64. viewportShowExpand: false,
  65. collapseLeftPanel: collapseLeftPanel,
  66. pdbProvider: pdbProvider || 'pdbe',
  67. emdbProvider: emdbProvider || 'pdbe',
  68. volumeStreamingServer: (mapProvider || 'pdbe') === 'rcsb'
  69. ? 'https://maps.rcsb.org'
  70. : 'https://www.ebi.ac.uk/pdbe/densities',
  71. pixelScale: parseFloat(pixelScale) || 1,
  72. pickScale: parseFloat(pickScale) || 0.25,
  73. pickPadding: isNaN(parseFloat(pickPadding)) ? 1 : parseFloat(pickPadding),
  74. enableWboit: disableWboit ? false : void 0, // use default value if disable-wboit is not set
  75. preferWebgl1: preferWebgl1,
  76. allowMajorPerformanceCaveat: allowMajorPerformanceCaveat,
  77. }).then(viewer => {
  78. var snapshotId = getParam('snapshot-id', '[^&]+').trim();
  79. if (snapshotId) viewer.setRemoteSnapshot(snapshotId);
  80. var snapshotUrl = getParam('snapshot-url', '[^&]+').trim();
  81. var snapshotUrlType = getParam('snapshot-url-type', '[^&]+').toLowerCase().trim() || 'molj';
  82. if (snapshotUrl && snapshotUrlType) viewer.loadSnapshotFromUrl(snapshotUrl, snapshotUrlType);
  83. var structureUrl = getParam('structure-url', '[^&]+').trim();
  84. var structureUrlFormat = getParam('structure-url-format', '[a-z]+').toLowerCase().trim();
  85. var structureUrlIsBinary = getParam('structure-url-is-binary', '[^&]+').trim() === '1';
  86. if (structureUrl) viewer.loadStructureFromUrl(structureUrl, structureUrlFormat, structureUrlIsBinary);
  87. var pdb = getParam('pdb', '[^&]+').trim();
  88. if (pdb) viewer.loadPdb(pdb);
  89. var pdbDev = getParam('pdb-dev', '[^&]+').trim();
  90. if (pdbDev) viewer.loadPdbDev(pdbDev);
  91. var emdb = getParam('emdb', '[^&]+').trim();
  92. if (emdb) viewer.loadEmdb(emdb);
  93. var afdb = getParam('afdb', '[^&]+').trim();
  94. if (afdb) viewer.loadAlphaFoldDb(afdb);
  95. var modelArchive = getParam('model-archive', '[^&]+').trim();
  96. if (modelArchive) viewer.loadModelArchive(modelArchive);
  97. });
  98. </script>
  99. <!-- __MOLSTAR_ANALYTICS__ -->
  100. </body>
  101. </html>