molstar 3.26.0 → 3.28.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 (499) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +202 -202
  3. package/build/viewer/embedded.html +52 -52
  4. package/build/viewer/index.html +115 -115
  5. package/build/viewer/molstar.css +1 -1
  6. package/build/viewer/molstar.js +1 -1
  7. package/lib/apps/docking-viewer/index.html +36 -36
  8. package/lib/apps/docking-viewer/viewport.d.ts +2 -0
  9. package/lib/apps/docking-viewer/viewport.js +1 -0
  10. package/lib/apps/viewer/app.d.ts +3 -1
  11. package/lib/apps/viewer/app.js +4 -0
  12. package/lib/apps/viewer/embedded.html +52 -52
  13. package/lib/apps/viewer/index.html +115 -115
  14. package/lib/cli/structure-info/volume.js +1 -1
  15. package/lib/commonjs/apps/docking-viewer/viewport.d.ts +2 -0
  16. package/lib/commonjs/apps/docking-viewer/viewport.js +1 -0
  17. package/lib/commonjs/apps/viewer/app.d.ts +3 -1
  18. package/lib/commonjs/apps/viewer/app.js +4 -0
  19. package/lib/commonjs/cli/structure-info/volume.js +1 -1
  20. package/lib/commonjs/examples/lighting/index.js +1 -1
  21. package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -0
  22. package/lib/commonjs/extensions/cellpack/model.js +2 -1
  23. package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.d.ts +1 -0
  24. package/lib/commonjs/extensions/meshes/choice.d.ts +26 -0
  25. package/lib/commonjs/extensions/meshes/choice.js +31 -0
  26. package/lib/commonjs/extensions/meshes/examples.d.ts +26 -0
  27. package/lib/commonjs/extensions/meshes/examples.js +337 -0
  28. package/lib/commonjs/extensions/meshes/mesh-cif-schema.d.ts +29 -0
  29. package/lib/commonjs/extensions/meshes/mesh-cif-schema.js +34 -0
  30. package/lib/commonjs/extensions/meshes/mesh-extension.d.ts +66 -0
  31. package/lib/commonjs/extensions/meshes/mesh-extension.js +221 -0
  32. package/lib/commonjs/extensions/meshes/mesh-streaming/behavior.d.ts +105 -0
  33. package/lib/commonjs/extensions/meshes/mesh-streaming/behavior.js +379 -0
  34. package/lib/commonjs/extensions/meshes/mesh-streaming/server-info.d.ts +54 -0
  35. package/lib/commonjs/extensions/meshes/mesh-streaming/server-info.js +30 -0
  36. package/lib/commonjs/extensions/meshes/mesh-streaming/transformers.d.ts +42 -0
  37. package/lib/commonjs/extensions/meshes/mesh-streaming/transformers.js +273 -0
  38. package/lib/commonjs/extensions/meshes/mesh-utils.d.ts +41 -0
  39. package/lib/commonjs/extensions/meshes/mesh-utils.js +357 -0
  40. package/lib/commonjs/extensions/meshes/metadata.d.ts +108 -0
  41. package/lib/commonjs/extensions/meshes/metadata.js +72 -0
  42. package/lib/commonjs/extensions/model-archive/quality-assessment/behavior.d.ts +2 -0
  43. package/lib/commonjs/extensions/model-archive/quality-assessment/prop.d.ts +1 -0
  44. package/lib/commonjs/extensions/model-archive/quality-assessment/prop.js +16 -4
  45. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -2
  46. package/lib/commonjs/extensions/rcsb/validation-report/behavior.d.ts +3 -0
  47. package/lib/commonjs/extensions/volumes-and-segmentations/entry-meshes.d.ts +17 -0
  48. package/lib/commonjs/extensions/volumes-and-segmentations/entry-meshes.js +156 -0
  49. package/lib/commonjs/extensions/volumes-and-segmentations/entry-models.d.ts +12 -0
  50. package/lib/commonjs/extensions/volumes-and-segmentations/entry-models.js +96 -0
  51. package/lib/commonjs/extensions/volumes-and-segmentations/entry-root.d.ts +122 -0
  52. package/lib/commonjs/extensions/volumes-and-segmentations/entry-root.js +576 -0
  53. package/lib/commonjs/extensions/volumes-and-segmentations/entry-segmentation.d.ts +20 -0
  54. package/lib/commonjs/extensions/volumes-and-segmentations/entry-segmentation.js +200 -0
  55. package/lib/commonjs/extensions/volumes-and-segmentations/entry-state.d.ts +88 -0
  56. package/lib/commonjs/extensions/volumes-and-segmentations/entry-state.js +32 -0
  57. package/lib/commonjs/extensions/volumes-and-segmentations/entry-volume.d.ts +35 -0
  58. package/lib/commonjs/extensions/volumes-and-segmentations/entry-volume.js +234 -0
  59. package/lib/commonjs/extensions/volumes-and-segmentations/external-api.d.ts +11 -0
  60. package/lib/commonjs/extensions/volumes-and-segmentations/external-api.js +85 -0
  61. package/lib/commonjs/extensions/volumes-and-segmentations/global-state.d.ts +51 -0
  62. package/lib/commonjs/extensions/volumes-and-segmentations/global-state.js +83 -0
  63. package/lib/commonjs/extensions/volumes-and-segmentations/helpers.d.ts +56 -0
  64. package/lib/commonjs/extensions/volumes-and-segmentations/helpers.js +171 -0
  65. package/lib/commonjs/extensions/volumes-and-segmentations/index.d.ts +20 -0
  66. package/lib/commonjs/extensions/volumes-and-segmentations/index.js +130 -0
  67. package/lib/commonjs/extensions/volumes-and-segmentations/transformers.d.ts +33 -0
  68. package/lib/commonjs/extensions/volumes-and-segmentations/transformers.js +85 -0
  69. package/lib/commonjs/extensions/volumes-and-segmentations/ui.d.ts +29 -0
  70. package/lib/commonjs/extensions/volumes-and-segmentations/ui.js +232 -0
  71. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/api.d.ts +22 -0
  72. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/api.js +83 -0
  73. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/data.d.ts +92 -0
  74. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/data.js +7 -0
  75. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/utils.d.ts +23 -0
  76. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/utils.js +78 -0
  77. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -0
  78. package/lib/commonjs/mol-canvas3d/passes/draw.js +3 -3
  79. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  80. package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +2 -1
  81. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +27 -13
  82. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
  83. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +3 -2
  84. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
  85. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +1 -1
  86. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +1 -0
  87. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +3 -2
  88. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +1 -2
  89. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +4 -6
  90. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +1 -0
  91. package/lib/commonjs/mol-gl/renderable/cylinders.js +1 -1
  92. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +1 -0
  93. package/lib/commonjs/mol-gl/renderable/spheres.js +1 -1
  94. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  95. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  96. package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.d.ts +1 -1
  97. package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.js +1 -1
  98. package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.d.ts +1 -1
  99. package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.js +1 -1
  100. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.d.ts +2 -2
  101. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +2 -2
  102. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  103. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  104. package/lib/commonjs/mol-gl/shader/cylinders.vert.d.ts +2 -2
  105. package/lib/commonjs/mol-gl/shader/cylinders.vert.js +2 -2
  106. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  107. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  108. package/lib/commonjs/mol-gl/shader/outlines.frag.d.ts +1 -1
  109. package/lib/commonjs/mol-gl/shader/outlines.frag.js +1 -1
  110. package/lib/commonjs/mol-gl/shader/postprocessing.frag.d.ts +1 -1
  111. package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +1 -1
  112. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  113. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  114. package/lib/commonjs/mol-gl/shader/spheres.vert.d.ts +2 -2
  115. package/lib/commonjs/mol-gl/shader/spheres.vert.js +2 -2
  116. package/lib/commonjs/mol-gl/webgl/renderbuffer.d.ts +1 -1
  117. package/lib/commonjs/mol-gl/webgl/renderbuffer.js +15 -0
  118. package/lib/commonjs/mol-gl/webgl/state.d.ts +12 -0
  119. package/lib/commonjs/mol-gl/webgl/state.js +136 -0
  120. package/lib/commonjs/mol-io/reader/cif/schema/segmentation.d.ts +38 -0
  121. package/lib/commonjs/mol-io/reader/cif/schema/segmentation.js +22 -0
  122. package/lib/commonjs/mol-io/reader/cif.d.ts +3 -1
  123. package/lib/commonjs/mol-io/reader/cif.js +3 -1
  124. package/lib/commonjs/mol-model/location.d.ts +2 -1
  125. package/lib/commonjs/mol-model/loci.d.ts +11 -11
  126. package/lib/commonjs/mol-model/loci.js +13 -1
  127. package/lib/commonjs/mol-model/sequence/alignment/sequence.d.ts +4 -1
  128. package/lib/commonjs/mol-model/sequence/alignment/sequence.js +4 -1
  129. package/lib/commonjs/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -0
  130. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-index.js +8 -0
  131. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +21 -5
  132. package/lib/commonjs/mol-model/structure/structure/util/superposition.d.ts +1 -0
  133. package/lib/commonjs/mol-model/structure/structure/util/superposition.js +2 -1
  134. package/lib/commonjs/mol-model/volume/volume.d.ts +35 -2
  135. package/lib/commonjs/mol-model/volume/volume.js +77 -2
  136. package/lib/commonjs/mol-model-formats/volume/segmentation.d.ts +23 -0
  137. package/lib/commonjs/mol-model-formats/volume/segmentation.js +138 -0
  138. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  139. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -0
  140. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +2 -1
  141. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  142. package/lib/commonjs/mol-plugin/commands.d.ts +1 -0
  143. package/lib/commonjs/mol-plugin-state/animation/built-in/model-index.js +4 -1
  144. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +2 -0
  145. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -0
  146. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +13 -4
  147. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.js +6 -1
  148. package/lib/commonjs/mol-plugin-state/builder/structure/representation.d.ts +1 -0
  149. package/lib/commonjs/mol-plugin-state/formats/provider.d.ts +2 -2
  150. package/lib/commonjs/mol-plugin-state/formats/provider.js +11 -3
  151. package/lib/commonjs/mol-plugin-state/formats/registry.js +6 -5
  152. package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +27 -0
  153. package/lib/commonjs/mol-plugin-state/formats/volume.js +65 -1
  154. package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +1 -1
  155. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +18 -13
  156. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +1 -2
  157. package/lib/commonjs/mol-plugin-state/transforms/representation.js +5 -6
  158. package/lib/commonjs/mol-plugin-state/transforms/volume.d.ts +11 -1
  159. package/lib/commonjs/mol-plugin-state/transforms/volume.js +55 -2
  160. package/lib/commonjs/mol-plugin-ui/controls/line-graph/line-graph-component.d.ts +1 -0
  161. package/lib/commonjs/mol-plugin-ui/controls/line-graph/line-graph-component.js +33 -13
  162. package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +1 -0
  163. package/lib/commonjs/mol-plugin-ui/controls/parameters.js +22 -5
  164. package/lib/commonjs/mol-plugin-ui/sequence/sequence.d.ts +25 -17
  165. package/lib/commonjs/mol-plugin-ui/sequence.d.ts +19 -1
  166. package/lib/commonjs/mol-plugin-ui/sequence.js +8 -1
  167. package/lib/commonjs/mol-plugin-ui/state/apply-action.d.ts +2 -10
  168. package/lib/commonjs/mol-plugin-ui/state/apply-action.js +2 -2
  169. package/lib/commonjs/mol-plugin-ui/structure/quick-styles.js +2 -2
  170. package/lib/commonjs/mol-plugin-ui/structure/superposition.d.ts +1 -1
  171. package/lib/commonjs/mol-plugin-ui/structure/volume.d.ts +1 -1
  172. package/lib/commonjs/mol-plugin-ui/structure/volume.js +3 -2
  173. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +1 -0
  174. package/lib/commonjs/mol-repr/structure/params.d.ts +2 -0
  175. package/lib/commonjs/mol-repr/structure/registry.d.ts +12 -0
  176. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -0
  177. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +6 -0
  178. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +6 -0
  179. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  180. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
  181. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +3 -0
  182. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  183. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +3 -0
  184. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +6 -0
  185. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +2 -0
  186. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +4 -0
  187. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +2 -0
  188. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
  189. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +1 -0
  190. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +4 -0
  191. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -0
  192. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
  193. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +1 -0
  194. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +1 -0
  195. package/lib/commonjs/mol-repr/structure/visual/element-cross.js +2 -1
  196. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +1 -0
  197. package/lib/commonjs/mol-repr/structure/visual/element-point.js +2 -1
  198. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +4 -0
  199. package/lib/commonjs/mol-repr/structure/visual/element-sphere.js +3 -1
  200. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
  201. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.js +6 -2
  202. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  203. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -1
  204. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
  205. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.js +3 -1
  206. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  207. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js +4 -0
  208. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
  209. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.js +2 -0
  210. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  211. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  212. package/lib/commonjs/mol-repr/structure/visual/util/bond.d.ts +7 -0
  213. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +18 -7
  214. package/lib/commonjs/mol-repr/structure/visual/util/common.d.ts +4 -1
  215. package/lib/commonjs/mol-repr/structure/visual/util/common.js +10 -6
  216. package/lib/commonjs/mol-repr/structure/visual/util/element.d.ts +1 -0
  217. package/lib/commonjs/mol-repr/structure/visual/util/element.js +2 -3
  218. package/lib/commonjs/mol-repr/structure/visual/util/gaussian.d.ts +2 -0
  219. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +4 -4
  220. package/lib/commonjs/mol-repr/volume/direct-volume.js +8 -6
  221. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +4 -4
  222. package/lib/commonjs/mol-repr/volume/isosurface.js +17 -16
  223. package/lib/commonjs/mol-repr/volume/registry.d.ts +54 -1
  224. package/lib/commonjs/mol-repr/volume/registry.js +3 -1
  225. package/lib/commonjs/mol-repr/volume/representation.d.ts +11 -7
  226. package/lib/commonjs/mol-repr/volume/representation.js +142 -47
  227. package/lib/commonjs/mol-repr/volume/segment.d.ts +291 -0
  228. package/lib/commonjs/mol-repr/volume/segment.js +289 -0
  229. package/lib/commonjs/mol-repr/volume/slice.d.ts +2 -2
  230. package/lib/commonjs/mol-repr/volume/slice.js +5 -5
  231. package/lib/commonjs/mol-repr/volume/util.d.ts +12 -3
  232. package/lib/commonjs/mol-repr/volume/util.js +72 -6
  233. package/lib/commonjs/mol-script/language/builder.d.ts +1 -0
  234. package/lib/commonjs/mol-theme/color/volume-segment.d.ts +41 -0
  235. package/lib/commonjs/mol-theme/color/volume-segment.js +58 -0
  236. package/lib/commonjs/mol-theme/color/volume-value.js +2 -1
  237. package/lib/commonjs/mol-theme/color.d.ts +15 -0
  238. package/lib/commonjs/mol-theme/color.js +2 -0
  239. package/lib/commonjs/mol-theme/label.d.ts +1 -1
  240. package/lib/commonjs/mol-theme/label.js +13 -1
  241. package/lib/commonjs/mol-util/param-definition.d.ts +4 -1
  242. package/lib/commonjs/mol-util/param-definition.js +5 -2
  243. package/lib/examples/alpha-orbitals/index.html +72 -72
  244. package/lib/examples/basic-wrapper/index.html +137 -137
  245. package/lib/examples/lighting/index.html +88 -88
  246. package/lib/examples/lighting/index.js +1 -1
  247. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  248. package/lib/extensions/anvil/behavior.d.ts +1 -0
  249. package/lib/extensions/cellpack/model.js +2 -1
  250. package/lib/extensions/dnatco/confal-pyramids/behavior.d.ts +1 -0
  251. package/lib/extensions/meshes/choice.d.ts +26 -0
  252. package/lib/extensions/meshes/choice.js +28 -0
  253. package/lib/extensions/meshes/examples.d.ts +26 -0
  254. package/lib/extensions/meshes/examples.js +325 -0
  255. package/lib/extensions/meshes/mesh-cif-schema.d.ts +29 -0
  256. package/lib/extensions/meshes/mesh-cif-schema.js +30 -0
  257. package/lib/extensions/meshes/mesh-extension.d.ts +66 -0
  258. package/lib/extensions/meshes/mesh-extension.js +218 -0
  259. package/lib/extensions/meshes/mesh-streaming/behavior.d.ts +105 -0
  260. package/lib/extensions/meshes/mesh-streaming/behavior.js +375 -0
  261. package/lib/extensions/meshes/mesh-streaming/server-info.d.ts +54 -0
  262. package/lib/extensions/meshes/mesh-streaming/server-info.js +26 -0
  263. package/lib/extensions/meshes/mesh-streaming/transformers.d.ts +42 -0
  264. package/lib/extensions/meshes/mesh-streaming/transformers.js +270 -0
  265. package/lib/extensions/meshes/mesh-utils.d.ts +41 -0
  266. package/lib/extensions/meshes/mesh-utils.js +346 -0
  267. package/lib/extensions/meshes/metadata.d.ts +108 -0
  268. package/lib/extensions/meshes/metadata.js +69 -0
  269. package/lib/extensions/model-archive/quality-assessment/behavior.d.ts +2 -0
  270. package/lib/extensions/model-archive/quality-assessment/prop.d.ts +1 -0
  271. package/lib/extensions/model-archive/quality-assessment/prop.js +16 -4
  272. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -2
  273. package/lib/extensions/rcsb/validation-report/behavior.d.ts +3 -0
  274. package/lib/extensions/volumes-and-segmentations/entry-meshes.d.ts +17 -0
  275. package/lib/extensions/volumes-and-segmentations/entry-meshes.js +153 -0
  276. package/lib/extensions/volumes-and-segmentations/entry-models.d.ts +12 -0
  277. package/lib/extensions/volumes-and-segmentations/entry-models.js +93 -0
  278. package/lib/extensions/volumes-and-segmentations/entry-root.d.ts +122 -0
  279. package/lib/extensions/volumes-and-segmentations/entry-root.js +571 -0
  280. package/lib/extensions/volumes-and-segmentations/entry-segmentation.d.ts +20 -0
  281. package/lib/extensions/volumes-and-segmentations/entry-segmentation.js +197 -0
  282. package/lib/extensions/volumes-and-segmentations/entry-state.d.ts +88 -0
  283. package/lib/extensions/volumes-and-segmentations/entry-state.js +29 -0
  284. package/lib/extensions/volumes-and-segmentations/entry-volume.d.ts +35 -0
  285. package/lib/extensions/volumes-and-segmentations/entry-volume.js +231 -0
  286. package/lib/extensions/volumes-and-segmentations/external-api.d.ts +11 -0
  287. package/lib/extensions/volumes-and-segmentations/external-api.js +80 -0
  288. package/lib/extensions/volumes-and-segmentations/global-state.d.ts +51 -0
  289. package/lib/extensions/volumes-and-segmentations/global-state.js +80 -0
  290. package/lib/extensions/volumes-and-segmentations/helpers.d.ts +56 -0
  291. package/lib/extensions/volumes-and-segmentations/helpers.js +163 -0
  292. package/lib/extensions/volumes-and-segmentations/index.d.ts +20 -0
  293. package/lib/extensions/volumes-and-segmentations/index.js +127 -0
  294. package/lib/extensions/volumes-and-segmentations/transformers.d.ts +33 -0
  295. package/lib/extensions/volumes-and-segmentations/transformers.js +82 -0
  296. package/lib/extensions/volumes-and-segmentations/ui.d.ts +29 -0
  297. package/lib/extensions/volumes-and-segmentations/ui.js +229 -0
  298. package/lib/extensions/volumes-and-segmentations/volseg-api/api.d.ts +22 -0
  299. package/lib/extensions/volumes-and-segmentations/volseg-api/api.js +80 -0
  300. package/lib/extensions/volumes-and-segmentations/volseg-api/data.d.ts +92 -0
  301. package/lib/extensions/volumes-and-segmentations/volseg-api/data.js +6 -0
  302. package/lib/extensions/volumes-and-segmentations/volseg-api/utils.d.ts +23 -0
  303. package/lib/extensions/volumes-and-segmentations/volseg-api/utils.js +75 -0
  304. package/lib/mol-canvas3d/canvas3d.d.ts +2 -0
  305. package/lib/mol-canvas3d/passes/draw.js +3 -3
  306. package/lib/mol-canvas3d/passes/image.d.ts +1 -0
  307. package/lib/mol-canvas3d/passes/postprocessing.d.ts +2 -1
  308. package/lib/mol-canvas3d/passes/postprocessing.js +27 -13
  309. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
  310. package/lib/mol-geo/geometry/cylinders/cylinders.js +3 -2
  311. package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
  312. package/lib/mol-geo/geometry/points/points.d.ts +1 -1
  313. package/lib/mol-geo/geometry/spheres/spheres.d.ts +1 -0
  314. package/lib/mol-geo/geometry/spheres/spheres.js +3 -2
  315. package/lib/mol-gl/compute/histogram-pyramid/reduction.js +1 -2
  316. package/lib/mol-gl/compute/marching-cubes/isosurface.js +4 -6
  317. package/lib/mol-gl/renderable/cylinders.d.ts +1 -0
  318. package/lib/mol-gl/renderable/cylinders.js +1 -1
  319. package/lib/mol-gl/renderable/spheres.d.ts +1 -0
  320. package/lib/mol-gl/renderable/spheres.js +1 -1
  321. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  322. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  323. package/lib/mol-gl/shader/chunks/clip-instance.glsl.d.ts +1 -1
  324. package/lib/mol-gl/shader/chunks/clip-instance.glsl.js +1 -1
  325. package/lib/mol-gl/shader/chunks/clip-pixel.glsl.d.ts +1 -1
  326. package/lib/mol-gl/shader/chunks/clip-pixel.glsl.js +1 -1
  327. package/lib/mol-gl/shader/chunks/common-clip.glsl.d.ts +2 -2
  328. package/lib/mol-gl/shader/chunks/common-clip.glsl.js +2 -2
  329. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  330. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  331. package/lib/mol-gl/shader/cylinders.vert.d.ts +2 -2
  332. package/lib/mol-gl/shader/cylinders.vert.js +2 -2
  333. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  334. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  335. package/lib/mol-gl/shader/outlines.frag.d.ts +1 -1
  336. package/lib/mol-gl/shader/outlines.frag.js +1 -1
  337. package/lib/mol-gl/shader/postprocessing.frag.d.ts +1 -1
  338. package/lib/mol-gl/shader/postprocessing.frag.js +1 -1
  339. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  340. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  341. package/lib/mol-gl/shader/spheres.vert.d.ts +2 -2
  342. package/lib/mol-gl/shader/spheres.vert.js +2 -2
  343. package/lib/mol-gl/webgl/renderbuffer.d.ts +1 -1
  344. package/lib/mol-gl/webgl/renderbuffer.js +15 -0
  345. package/lib/mol-gl/webgl/state.d.ts +12 -0
  346. package/lib/mol-gl/webgl/state.js +136 -0
  347. package/lib/mol-io/reader/cif/schema/segmentation.d.ts +38 -0
  348. package/lib/mol-io/reader/cif/schema/segmentation.js +19 -0
  349. package/lib/mol-io/reader/cif.d.ts +3 -1
  350. package/lib/mol-io/reader/cif.js +3 -1
  351. package/lib/mol-model/location.d.ts +2 -1
  352. package/lib/mol-model/loci.d.ts +11 -11
  353. package/lib/mol-model/loci.js +13 -1
  354. package/lib/mol-model/sequence/alignment/sequence.d.ts +4 -1
  355. package/lib/mol-model/sequence/alignment/sequence.js +3 -2
  356. package/lib/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -0
  357. package/lib/mol-model/structure/model/properties/utils/atomic-index.js +8 -0
  358. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +21 -5
  359. package/lib/mol-model/structure/structure/util/superposition.d.ts +1 -0
  360. package/lib/mol-model/structure/structure/util/superposition.js +1 -1
  361. package/lib/mol-model/volume/volume.d.ts +35 -2
  362. package/lib/mol-model/volume/volume.js +79 -4
  363. package/lib/mol-model-formats/volume/segmentation.d.ts +23 -0
  364. package/lib/mol-model-formats/volume/segmentation.js +135 -0
  365. package/lib/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  366. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -0
  367. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +2 -1
  368. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  369. package/lib/mol-plugin/commands.d.ts +1 -0
  370. package/lib/mol-plugin/version.js +2 -2
  371. package/lib/mol-plugin-state/animation/built-in/model-index.js +4 -1
  372. package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +2 -0
  373. package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -0
  374. package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +13 -4
  375. package/lib/mol-plugin-state/builder/structure/representation-preset.js +6 -1
  376. package/lib/mol-plugin-state/builder/structure/representation.d.ts +1 -0
  377. package/lib/mol-plugin-state/formats/provider.d.ts +2 -2
  378. package/lib/mol-plugin-state/formats/provider.js +11 -3
  379. package/lib/mol-plugin-state/formats/registry.js +6 -5
  380. package/lib/mol-plugin-state/formats/volume.d.ts +27 -0
  381. package/lib/mol-plugin-state/formats/volume.js +64 -0
  382. package/lib/mol-plugin-state/manager/structure/component.d.ts +1 -1
  383. package/lib/mol-plugin-state/manager/structure/component.js +18 -13
  384. package/lib/mol-plugin-state/transforms/representation.d.ts +1 -2
  385. package/lib/mol-plugin-state/transforms/representation.js +5 -6
  386. package/lib/mol-plugin-state/transforms/volume.d.ts +11 -1
  387. package/lib/mol-plugin-state/transforms/volume.js +54 -1
  388. package/lib/mol-plugin-ui/controls/line-graph/line-graph-component.d.ts +1 -0
  389. package/lib/mol-plugin-ui/controls/line-graph/line-graph-component.js +33 -13
  390. package/lib/mol-plugin-ui/controls/parameters.d.ts +1 -0
  391. package/lib/mol-plugin-ui/controls/parameters.js +22 -5
  392. package/lib/mol-plugin-ui/sequence/sequence.d.ts +25 -17
  393. package/lib/mol-plugin-ui/sequence.d.ts +19 -1
  394. package/lib/mol-plugin-ui/sequence.js +7 -7
  395. package/lib/mol-plugin-ui/skin/base/base.scss +32 -32
  396. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  397. package/lib/mol-plugin-ui/skin/base/components/controls.scss +418 -418
  398. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  399. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  400. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  401. package/lib/mol-plugin-ui/skin/base/components/misc.scss +643 -643
  402. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  403. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  404. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  405. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  406. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  407. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +137 -128
  408. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  409. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  410. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  411. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  412. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  413. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  414. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  415. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  416. package/lib/mol-plugin-ui/skin/base/variables.scss +85 -85
  417. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  418. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  419. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  420. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  421. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  422. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  423. package/lib/mol-plugin-ui/state/apply-action.d.ts +2 -10
  424. package/lib/mol-plugin-ui/state/apply-action.js +2 -2
  425. package/lib/mol-plugin-ui/structure/quick-styles.js +2 -2
  426. package/lib/mol-plugin-ui/structure/superposition.d.ts +1 -1
  427. package/lib/mol-plugin-ui/structure/volume.d.ts +1 -1
  428. package/lib/mol-plugin-ui/structure/volume.js +3 -2
  429. package/lib/mol-repr/structure/complex-visual.d.ts +1 -0
  430. package/lib/mol-repr/structure/params.d.ts +2 -0
  431. package/lib/mol-repr/structure/registry.d.ts +12 -0
  432. package/lib/mol-repr/structure/representation/backbone.d.ts +3 -0
  433. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +6 -0
  434. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +6 -0
  435. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  436. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
  437. package/lib/mol-repr/structure/representation/line.d.ts +3 -0
  438. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  439. package/lib/mol-repr/structure/representation/point.d.ts +3 -0
  440. package/lib/mol-repr/structure/representation/spacefill.d.ts +6 -0
  441. package/lib/mol-repr/structure/units-visual.d.ts +2 -0
  442. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +4 -0
  443. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +2 -0
  444. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
  445. package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +1 -0
  446. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +4 -0
  447. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -0
  448. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
  449. package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +1 -0
  450. package/lib/mol-repr/structure/visual/element-cross.d.ts +1 -0
  451. package/lib/mol-repr/structure/visual/element-cross.js +2 -1
  452. package/lib/mol-repr/structure/visual/element-point.d.ts +1 -0
  453. package/lib/mol-repr/structure/visual/element-point.js +2 -1
  454. package/lib/mol-repr/structure/visual/element-sphere.d.ts +4 -0
  455. package/lib/mol-repr/structure/visual/element-sphere.js +3 -1
  456. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
  457. package/lib/mol-repr/structure/visual/gaussian-density-volume.js +6 -2
  458. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  459. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -1
  460. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
  461. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.js +3 -1
  462. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  463. package/lib/mol-repr/structure/visual/molecular-surface-mesh.js +4 -0
  464. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
  465. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.js +2 -0
  466. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  467. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  468. package/lib/mol-repr/structure/visual/util/bond.d.ts +7 -0
  469. package/lib/mol-repr/structure/visual/util/bond.js +19 -8
  470. package/lib/mol-repr/structure/visual/util/common.d.ts +4 -1
  471. package/lib/mol-repr/structure/visual/util/common.js +10 -6
  472. package/lib/mol-repr/structure/visual/util/element.d.ts +1 -0
  473. package/lib/mol-repr/structure/visual/util/element.js +3 -4
  474. package/lib/mol-repr/structure/visual/util/gaussian.d.ts +2 -0
  475. package/lib/mol-repr/volume/direct-volume.d.ts +4 -4
  476. package/lib/mol-repr/volume/direct-volume.js +8 -6
  477. package/lib/mol-repr/volume/isosurface.d.ts +4 -4
  478. package/lib/mol-repr/volume/isosurface.js +17 -16
  479. package/lib/mol-repr/volume/registry.d.ts +54 -1
  480. package/lib/mol-repr/volume/registry.js +3 -1
  481. package/lib/mol-repr/volume/representation.d.ts +11 -7
  482. package/lib/mol-repr/volume/representation.js +144 -49
  483. package/lib/mol-repr/volume/segment.d.ts +291 -0
  484. package/lib/mol-repr/volume/segment.js +279 -0
  485. package/lib/mol-repr/volume/slice.d.ts +2 -2
  486. package/lib/mol-repr/volume/slice.js +5 -5
  487. package/lib/mol-repr/volume/util.d.ts +12 -3
  488. package/lib/mol-repr/volume/util.js +71 -6
  489. package/lib/mol-script/language/builder.d.ts +1 -0
  490. package/lib/mol-theme/color/volume-segment.d.ts +41 -0
  491. package/lib/mol-theme/color/volume-segment.js +53 -0
  492. package/lib/mol-theme/color/volume-value.js +2 -1
  493. package/lib/mol-theme/color.d.ts +15 -0
  494. package/lib/mol-theme/color.js +2 -0
  495. package/lib/mol-theme/label.d.ts +1 -1
  496. package/lib/mol-theme/label.js +13 -1
  497. package/lib/mol-util/param-definition.d.ts +4 -1
  498. package/lib/mol-util/param-definition.js +5 -2
  499. package/package.json +169 -168
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ *
4
+ * @author Adam Midlik <midlik@gmail.com>
5
+ */
6
+ import { Color } from '../../mol-util/color';
7
+ export interface Metadata {
8
+ grid: {
9
+ general: {
10
+ details: string;
11
+ };
12
+ volumes: Volumes;
13
+ segmentation_lattices: SegmentationLattices;
14
+ segmentation_meshes: SegmentationMeshes;
15
+ };
16
+ annotation: Annotation;
17
+ }
18
+ export interface Volumes {
19
+ volume_downsamplings: number[];
20
+ voxel_size: {
21
+ [downsampling: number]: Vector3;
22
+ };
23
+ origin: Vector3;
24
+ grid_dimensions: Vector3;
25
+ sampled_grid_dimensions: {
26
+ [downsampling: number]: Vector3;
27
+ };
28
+ mean: {
29
+ [downsampling: number]: number;
30
+ };
31
+ std: {
32
+ [downsampling: number]: number;
33
+ };
34
+ min: {
35
+ [downsampling: number]: number;
36
+ };
37
+ max: {
38
+ [downsampling: number]: number;
39
+ };
40
+ volume_force_dtype: string;
41
+ }
42
+ export interface SegmentationLattices {
43
+ segmentation_lattice_ids: number[];
44
+ segmentation_downsamplings: {
45
+ [lattice: number]: number[];
46
+ };
47
+ }
48
+ export interface Annotation {
49
+ name: string;
50
+ details: string;
51
+ segment_list: Segment[];
52
+ }
53
+ export interface Segment {
54
+ id: number;
55
+ colour: number[];
56
+ biological_annotation: BiologicalAnnotation;
57
+ }
58
+ export interface BiologicalAnnotation {
59
+ name: string;
60
+ external_references: {
61
+ id: number;
62
+ resource: string;
63
+ accession: string;
64
+ label: string;
65
+ description: string;
66
+ }[];
67
+ }
68
+ export interface SegmentationMeshes {
69
+ mesh_component_numbers: {
70
+ segment_ids?: {
71
+ [segId: number]: {
72
+ detail_lvls: {
73
+ [detail: number]: {
74
+ mesh_ids: {
75
+ [meshId: number]: {
76
+ num_triangles: number;
77
+ num_vertices: number;
78
+ };
79
+ };
80
+ };
81
+ };
82
+ };
83
+ };
84
+ };
85
+ detail_lvl_to_fraction: {
86
+ [lvl: number]: number;
87
+ };
88
+ }
89
+ type Vector3 = [number, number, number];
90
+ export declare namespace Metadata {
91
+ function meshSegments(metadata: Metadata): number[];
92
+ function meshSegmentDetails(metadata: Metadata, segmentId: number): number[];
93
+ /** Get the worst available detail level that is not worse than preferredDetail.
94
+ * If preferredDetail is null, get the worst detail level overall.
95
+ * (worse = greater number) */
96
+ function getSufficientDetail(metadata: Metadata, segmentId: number, preferredDetail: number | null): number;
97
+ function annotationsBySegment(metadata: Metadata): {
98
+ [id: number]: Segment;
99
+ };
100
+ function dropSegments(metadata: Metadata, segments: number[]): void;
101
+ function namesAndColorsBySegment(metadata: Metadata): {
102
+ [id: number]: {
103
+ name: string;
104
+ color: Color;
105
+ };
106
+ };
107
+ }
108
+ export {};
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
+ *
5
+ * @author Adam Midlik <midlik@gmail.com>
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.Metadata = void 0;
9
+ var color_1 = require("../../mol-util/color");
10
+ var Metadata;
11
+ (function (Metadata) {
12
+ function meshSegments(metadata) {
13
+ var segmentIds = metadata.grid.segmentation_meshes.mesh_component_numbers.segment_ids;
14
+ if (segmentIds === undefined)
15
+ return [];
16
+ return Object.keys(segmentIds).map(function (s) { return parseInt(s); });
17
+ }
18
+ Metadata.meshSegments = meshSegments;
19
+ function meshSegmentDetails(metadata, segmentId) {
20
+ var segmentIds = metadata.grid.segmentation_meshes.mesh_component_numbers.segment_ids;
21
+ if (segmentIds === undefined)
22
+ return [];
23
+ var details = segmentIds[segmentId].detail_lvls;
24
+ return Object.keys(details).map(function (s) { return parseInt(s); });
25
+ }
26
+ Metadata.meshSegmentDetails = meshSegmentDetails;
27
+ /** Get the worst available detail level that is not worse than preferredDetail.
28
+ * If preferredDetail is null, get the worst detail level overall.
29
+ * (worse = greater number) */
30
+ function getSufficientDetail(metadata, segmentId, preferredDetail) {
31
+ var availDetails = meshSegmentDetails(metadata, segmentId);
32
+ if (preferredDetail !== null) {
33
+ availDetails = availDetails.filter(function (det) { return det <= preferredDetail; });
34
+ }
35
+ return Math.max.apply(Math, availDetails);
36
+ }
37
+ Metadata.getSufficientDetail = getSufficientDetail;
38
+ function annotationsBySegment(metadata) {
39
+ var result = {};
40
+ for (var _i = 0, _a = metadata.annotation.segment_list; _i < _a.length; _i++) {
41
+ var segment = _a[_i];
42
+ if (segment.id in result) {
43
+ throw new Error("Duplicate segment annotation for segment ".concat(segment.id));
44
+ }
45
+ result[segment.id] = segment;
46
+ }
47
+ return result;
48
+ }
49
+ Metadata.annotationsBySegment = annotationsBySegment;
50
+ function dropSegments(metadata, segments) {
51
+ if (metadata.grid.segmentation_meshes.mesh_component_numbers.segment_ids === undefined)
52
+ return;
53
+ var dropSet = new Set(segments);
54
+ metadata.annotation.segment_list = metadata.annotation.segment_list.filter(function (seg) { return !dropSet.has(seg.id); });
55
+ for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {
56
+ var seg = segments_1[_i];
57
+ delete metadata.grid.segmentation_meshes.mesh_component_numbers.segment_ids[seg];
58
+ }
59
+ }
60
+ Metadata.dropSegments = dropSegments;
61
+ function namesAndColorsBySegment(metadata) {
62
+ var result = {};
63
+ for (var _i = 0, _a = metadata.annotation.segment_list; _i < _a.length; _i++) {
64
+ var segment = _a[_i];
65
+ if (segment.id in result)
66
+ throw new Error("Duplicate segment annotation for segment ".concat(segment.id));
67
+ result[segment.id] = { name: segment.biological_annotation.name, color: color_1.Color.fromNormalizedArray(segment.colour, 0) };
68
+ }
69
+ return result;
70
+ }
71
+ Metadata.namesAndColorsBySegment = namesAndColorsBySegment;
72
+ })(Metadata = exports.Metadata || (exports.Metadata = {}));
@@ -12,6 +12,7 @@ export declare const MAQualityAssessment: import("../../../mol-state/transformer
12
12
  }>;
13
13
  export declare const QualityAssessmentPLDDTPreset: StructureRepresentationPresetProvider<{
14
14
  ignoreHydrogens: boolean | undefined;
15
+ ignoreHydrogensVariant: "all" | "non-polar" | undefined;
15
16
  ignoreLight: boolean | undefined;
16
17
  quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined;
17
18
  theme: PD.Normalize<{
@@ -43,6 +44,7 @@ export declare const QualityAssessmentPLDDTPreset: StructureRepresentationPreset
43
44
  }>;
44
45
  export declare const QualityAssessmentQmeanPreset: StructureRepresentationPresetProvider<{
45
46
  ignoreHydrogens: boolean | undefined;
47
+ ignoreHydrogensVariant: "all" | "non-polar" | undefined;
46
48
  ignoreLight: boolean | undefined;
47
49
  quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined;
48
50
  theme: PD.Normalize<{
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) 2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
+ * @author David Sehnal <david.sehnal@gmail.com>
5
6
  */
6
7
  import { ParamDefinition as PD } from '../../../mol-util/param-definition';
7
8
  import { CustomProperty } from '../../../mol-model-props/common/custom-property';
@@ -3,6 +3,7 @@
3
3
  * Copyright (c) 2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
+ * @author David Sehnal <david.sehnal@gmail.com>
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  exports.QualityAssessmentProvider = exports.QualityAssessmentParams = exports.QualityAssessment = void 0;
@@ -44,7 +45,7 @@ var QualityAssessment;
44
45
  QualityAssessment.isApplicable = isApplicable;
45
46
  function obtain(ctx, model, props) {
46
47
  return tslib_1.__awaiter(this, void 0, void 0, function () {
47
- var _a, ma_qa_metric, ma_qa_metric_local, model_id, label_asym_id, label_seq_id, metric_id, metric_value, index, localMetrics, localNames, i, il, name_1, i, il, labelAsymId, entityIndex, rI, name_2;
48
+ var _a, ma_qa_metric, ma_qa_metric_local, model_id, label_asym_id, label_seq_id, metric_id, metric_value, index, localMetrics, localNames, i, il, name_1, residueKey, i, il, labelAsymId, entityIndex, rI, name_2;
48
49
  return tslib_1.__generator(this, function (_b) {
49
50
  if (!model || !mmcif_1.MmcifFormat.is(model.sourceData))
50
51
  return [2 /*return*/, Empty];
@@ -64,14 +65,25 @@ var QualityAssessment;
64
65
  localMetrics.set(name_1, new Map());
65
66
  localNames.set(ma_qa_metric.id.value(i), name_1);
66
67
  }
68
+ residueKey = {
69
+ label_entity_id: '',
70
+ label_asym_id: '',
71
+ label_seq_id: 0,
72
+ pdbx_PDB_ins_code: undefined,
73
+ };
67
74
  for (i = 0, il = ma_qa_metric_local._rowCount; i < il; i++) {
68
75
  if (model_id.value(i) !== model.modelNum)
69
76
  continue;
70
77
  labelAsymId = label_asym_id.value(i);
71
78
  entityIndex = index.findEntity(labelAsymId);
72
- rI = index.findResidue(model.entities.data.id.value(entityIndex), labelAsymId, label_seq_id.value(i));
73
- name_2 = localNames.get(metric_id.value(i));
74
- localMetrics.get(name_2).set(rI, metric_value.value(i));
79
+ residueKey.label_entity_id = model.entities.data.id.value(entityIndex);
80
+ residueKey.label_asym_id = labelAsymId;
81
+ residueKey.label_seq_id = label_seq_id.value(i);
82
+ rI = index.findResidueLabel(residueKey);
83
+ if (rI >= 0) {
84
+ name_2 = localNames.get(metric_id.value(i));
85
+ localMetrics.get(name_2).set(rI, metric_value.value(i));
86
+ }
75
87
  }
76
88
  return [2 /*return*/, {
77
89
  value: {
@@ -45,13 +45,14 @@ declare const AssemblySymmetry3D: StateTransformer<PluginStateObject.Molecule.St
45
45
  }>>;
46
46
  export declare const AssemblySymmetryPresetParams: {
47
47
  ignoreHydrogens: PD.Base<boolean | undefined>;
48
+ ignoreHydrogensVariant: PD.Base<"all" | "non-polar" | undefined>;
48
49
  ignoreLight: PD.Base<boolean | undefined>;
49
50
  quality: PD.Base<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined>;
50
51
  theme: PD.Base<PD.Normalize<{
51
- globalName: "uniform" | "occupancy" | "element-index" | "element-symbol" | "hydrophobicity" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "entity-id" | "entity-source" | "model-index" | "structure-index" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "illustrative" | "trajectory-index" | "operator-hkl" | "partial-charge" | "atom-id" | "volume-value" | "external-volume" | undefined;
52
+ globalName: "uniform" | "occupancy" | "element-index" | "element-symbol" | "hydrophobicity" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "entity-id" | "entity-source" | "model-index" | "structure-index" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "illustrative" | "trajectory-index" | "operator-hkl" | "partial-charge" | "atom-id" | "volume-value" | "volume-segment" | "external-volume" | undefined;
52
53
  globalColorParams: any;
53
54
  carbonColor: "element-symbol" | "chain-id" | "operator-name" | undefined;
54
- symmetryColor: "uniform" | "occupancy" | "element-index" | "element-symbol" | "hydrophobicity" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "entity-id" | "entity-source" | "model-index" | "structure-index" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "illustrative" | "trajectory-index" | "operator-hkl" | "partial-charge" | "atom-id" | "volume-value" | "external-volume" | undefined;
55
+ symmetryColor: "uniform" | "occupancy" | "element-index" | "element-symbol" | "hydrophobicity" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "entity-id" | "entity-source" | "model-index" | "structure-index" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "illustrative" | "trajectory-index" | "operator-hkl" | "partial-charge" | "atom-id" | "volume-value" | "volume-segment" | "external-volume" | undefined;
55
56
  symmetryColorParams: any;
56
57
  focus: PD.Normalize<{
57
58
  name: any;
@@ -61,6 +62,7 @@ export declare const AssemblySymmetryPresetParams: {
61
62
  };
62
63
  export declare const AssemblySymmetryPreset: StructureRepresentationPresetProvider<{
63
64
  ignoreHydrogens: boolean | undefined;
65
+ ignoreHydrogensVariant: "all" | "non-polar" | undefined;
64
66
  ignoreLight: boolean | undefined;
65
67
  quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined;
66
68
  theme: PD.Normalize<{
@@ -12,6 +12,7 @@ export declare const RCSBValidationReport: import("../../../mol-state/transforme
12
12
  }>;
13
13
  export declare const ValidationReportGeometryQualityPreset: StructureRepresentationPresetProvider<{
14
14
  ignoreHydrogens: boolean | undefined;
15
+ ignoreHydrogensVariant: "all" | "non-polar" | undefined;
15
16
  ignoreLight: boolean | undefined;
16
17
  quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined;
17
18
  theme: PD.Normalize<{
@@ -51,6 +52,7 @@ export declare const ValidationReportGeometryQualityPreset: StructureRepresentat
51
52
  }>;
52
53
  export declare const ValidationReportDensityFitPreset: StructureRepresentationPresetProvider<{
53
54
  ignoreHydrogens: boolean | undefined;
55
+ ignoreHydrogensVariant: "all" | "non-polar" | undefined;
54
56
  ignoreLight: boolean | undefined;
55
57
  quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined;
56
58
  theme: PD.Normalize<{
@@ -82,6 +84,7 @@ export declare const ValidationReportDensityFitPreset: StructureRepresentationPr
82
84
  }>;
83
85
  export declare const ValidationReportRandomCoilIndexPreset: StructureRepresentationPresetProvider<{
84
86
  ignoreHydrogens: boolean | undefined;
87
+ ignoreHydrogensVariant: "all" | "non-polar" | undefined;
85
88
  ignoreLight: boolean | undefined;
86
89
  quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined;
87
90
  theme: PD.Normalize<{
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ *
4
+ * @author Adam Midlik <midlik@gmail.com>
5
+ */
6
+ import { Segment } from './volseg-api/data';
7
+ import { VolsegEntryData } from './entry-root';
8
+ export declare class VolsegMeshSegmentationData {
9
+ private entryData;
10
+ constructor(rootData: VolsegEntryData);
11
+ loadSegmentation(): Promise<void>;
12
+ updateOpacity(opacity: number): Promise<import("../../mol-state").StateObjectSelector<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/transformer").StateTransformer<import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, import("../../mol-state/object").StateObject<any, import("../../mol-state/object").StateObject.Type<any>>, any>>>;
13
+ highlightSegment(segment: Segment): Promise<void>;
14
+ selectSegment(segment?: number): Promise<void>;
15
+ /** Make visible the specified set of mesh segments */
16
+ showSegments(segments: number[]): Promise<void>;
17
+ }
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
+ *
5
+ * @author Adam Midlik <midlik@gmail.com>
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.VolsegMeshSegmentationData = void 0;
9
+ var tslib_1 = require("tslib");
10
+ var misc_1 = require("../../mol-plugin-state/transforms/misc");
11
+ var representation_1 = require("../../mol-plugin-state/transforms/representation");
12
+ var state_1 = require("../../mol-plugin/behavior/static/state");
13
+ var commands_1 = require("../../mol-plugin/commands");
14
+ var color_1 = require("../../mol-util/color");
15
+ var names_1 = require("../../mol-util/color/names");
16
+ var examples_1 = require("../meshes/examples");
17
+ var behavior_1 = require("../meshes/mesh-streaming/behavior");
18
+ var DEFAULT_MESH_DETAIL = 5; // null means worst
19
+ var VolsegMeshSegmentationData = /** @class */ (function () {
20
+ function VolsegMeshSegmentationData(rootData) {
21
+ this.entryData = rootData;
22
+ }
23
+ VolsegMeshSegmentationData.prototype.loadSegmentation = function () {
24
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
25
+ var hasMeshes;
26
+ return tslib_1.__generator(this, function (_a) {
27
+ switch (_a.label) {
28
+ case 0:
29
+ hasMeshes = this.entryData.metadata.meshSegmentIds.length > 0;
30
+ if (!hasMeshes) return [3 /*break*/, 2];
31
+ return [4 /*yield*/, this.showSegments(this.entryData.metadata.allSegmentIds)];
32
+ case 1:
33
+ _a.sent();
34
+ _a.label = 2;
35
+ case 2: return [2 /*return*/];
36
+ }
37
+ });
38
+ });
39
+ };
40
+ VolsegMeshSegmentationData.prototype.updateOpacity = function (opacity) {
41
+ var visuals = this.entryData.findNodesByTags('mesh-segment-visual');
42
+ var update = this.entryData.newUpdate();
43
+ for (var _i = 0, visuals_1 = visuals; _i < visuals_1.length; _i++) {
44
+ var visual = visuals_1[_i];
45
+ update.to(visual).update(representation_1.ShapeRepresentation3D, function (p) { p.alpha = opacity; });
46
+ }
47
+ return update.commit();
48
+ };
49
+ VolsegMeshSegmentationData.prototype.highlightSegment = function (segment) {
50
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
51
+ var visuals, _i, visuals_2, visual;
52
+ return tslib_1.__generator(this, function (_a) {
53
+ switch (_a.label) {
54
+ case 0:
55
+ visuals = this.entryData.findNodesByTags('mesh-segment-visual', "segment-".concat(segment.id));
56
+ _i = 0, visuals_2 = visuals;
57
+ _a.label = 1;
58
+ case 1:
59
+ if (!(_i < visuals_2.length)) return [3 /*break*/, 4];
60
+ visual = visuals_2[_i];
61
+ return [4 /*yield*/, commands_1.PluginCommands.Interactivity.Object.Highlight(this.entryData.plugin, { state: this.entryData.plugin.state.data, ref: visual.transform.ref })];
62
+ case 2:
63
+ _a.sent();
64
+ _a.label = 3;
65
+ case 3:
66
+ _i++;
67
+ return [3 /*break*/, 1];
68
+ case 4: return [2 /*return*/];
69
+ }
70
+ });
71
+ });
72
+ };
73
+ VolsegMeshSegmentationData.prototype.selectSegment = function (segment) {
74
+ var _a;
75
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
76
+ var visuals, reprNode, loci;
77
+ return tslib_1.__generator(this, function (_b) {
78
+ if (segment === undefined || segment < 0)
79
+ return [2 /*return*/];
80
+ visuals = this.entryData.findNodesByTags('mesh-segment-visual', "segment-".concat(segment));
81
+ reprNode = (_a = visuals[0]) === null || _a === void 0 ? void 0 : _a.obj;
82
+ if (!reprNode)
83
+ return [2 /*return*/];
84
+ loci = reprNode.data.repr.getAllLoci()[0];
85
+ if (!loci)
86
+ return [2 /*return*/];
87
+ this.entryData.plugin.managers.interactivity.lociSelects.select({ loci: loci, repr: reprNode.data.repr }, false);
88
+ return [2 /*return*/];
89
+ });
90
+ });
91
+ };
92
+ /** Make visible the specified set of mesh segments */
93
+ VolsegMeshSegmentationData.prototype.showSegments = function (segments) {
94
+ var _a, _b, _c, _d;
95
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
96
+ var segmentsToShow, visuals, _i, visuals_3, visual, theTag, id, visibility, segmentsToCreate, group, newGroupNode, totalVolume, awaiting, _e, segmentsToCreate_1, seg, segment, detail, color, url, label, meshPromise, _f, awaiting_1, promise;
97
+ return tslib_1.__generator(this, function (_g) {
98
+ switch (_g.label) {
99
+ case 0:
100
+ segmentsToShow = new Set(segments);
101
+ visuals = this.entryData.findNodesByTags('mesh-segment-visual');
102
+ for (_i = 0, visuals_3 = visuals; _i < visuals_3.length; _i++) {
103
+ visual = visuals_3[_i];
104
+ theTag = (_b = (_a = visual.obj) === null || _a === void 0 ? void 0 : _a.tags) === null || _b === void 0 ? void 0 : _b.find(function (tag) { return tag.startsWith('segment-'); });
105
+ if (!theTag)
106
+ continue;
107
+ id = parseInt(theTag.split('-')[1]);
108
+ visibility = segmentsToShow.has(id);
109
+ (0, state_1.setSubtreeVisibility)(this.entryData.plugin.state.data, visual.transform.ref, !visibility); // true means hide, ¯\_(ツ)_/¯
110
+ segmentsToShow.delete(id);
111
+ }
112
+ segmentsToCreate = this.entryData.metadata.meshSegmentIds.filter(function (seg) { return segmentsToShow.has(seg); });
113
+ if (segmentsToCreate.length === 0)
114
+ return [2 /*return*/];
115
+ group = (_c = this.entryData.findNodesByTags('mesh-segmentation-group')[0]) === null || _c === void 0 ? void 0 : _c.transform.ref;
116
+ if (!!group) return [3 /*break*/, 2];
117
+ return [4 /*yield*/, this.entryData.newUpdate().apply(misc_1.CreateGroup, { label: 'Segmentation', description: 'Mesh' }, { tags: ['mesh-segmentation-group'], state: { isCollapsed: true } }).commit()];
118
+ case 1:
119
+ newGroupNode = _g.sent();
120
+ group = newGroupNode.ref;
121
+ _g.label = 2;
122
+ case 2:
123
+ totalVolume = this.entryData.metadata.gridTotalVolume;
124
+ awaiting = [];
125
+ for (_e = 0, segmentsToCreate_1 = segmentsToCreate; _e < segmentsToCreate_1.length; _e++) {
126
+ seg = segmentsToCreate_1[_e];
127
+ segment = this.entryData.metadata.getSegment(seg);
128
+ if (!segment)
129
+ continue;
130
+ detail = this.entryData.metadata.getSufficientMeshDetail(seg, DEFAULT_MESH_DETAIL);
131
+ color = segment.colour.length >= 3 ? color_1.Color.fromNormalizedArray(segment.colour, 0) : names_1.ColorNames.gray;
132
+ url = this.entryData.api.meshUrl_Bcif(this.entryData.source, this.entryData.entryId, seg, detail);
133
+ label = (_d = segment.biological_annotation.name) !== null && _d !== void 0 ? _d : "Segment ".concat(seg);
134
+ meshPromise = (0, examples_1.createMeshFromUrl)(this.entryData.plugin, url, seg, detail, true, color, group, behavior_1.BACKGROUND_SEGMENT_VOLUME_THRESHOLD * totalVolume, "<b>".concat(label, "</b>"), this.entryData.ref);
135
+ awaiting.push(meshPromise);
136
+ }
137
+ _f = 0, awaiting_1 = awaiting;
138
+ _g.label = 3;
139
+ case 3:
140
+ if (!(_f < awaiting_1.length)) return [3 /*break*/, 6];
141
+ promise = awaiting_1[_f];
142
+ return [4 /*yield*/, promise];
143
+ case 4:
144
+ _g.sent();
145
+ _g.label = 5;
146
+ case 5:
147
+ _f++;
148
+ return [3 /*break*/, 3];
149
+ case 6: return [2 /*return*/];
150
+ }
151
+ });
152
+ });
153
+ };
154
+ return VolsegMeshSegmentationData;
155
+ }());
156
+ exports.VolsegMeshSegmentationData = VolsegMeshSegmentationData;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ *
4
+ * @author Adam Midlik <midlik@gmail.com>
5
+ */
6
+ import { VolsegEntryData } from './entry-root';
7
+ export declare class VolsegModelData {
8
+ private entryData;
9
+ constructor(rootData: VolsegEntryData);
10
+ private loadPdb;
11
+ showPdbs(pdbIds: string[]): Promise<void>;
12
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
+ *
5
+ * @author Adam Midlik <midlik@gmail.com>
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.VolsegModelData = void 0;
9
+ var tslib_1 = require("tslib");
10
+ var data_1 = require("../../mol-plugin-state/transforms/data");
11
+ var misc_1 = require("../../mol-plugin-state/transforms/misc");
12
+ var model_1 = require("../../mol-plugin-state/transforms/model");
13
+ var state_1 = require("../../mol-plugin/behavior/static/state");
14
+ var VolsegModelData = /** @class */ (function () {
15
+ function VolsegModelData(rootData) {
16
+ this.entryData = rootData;
17
+ }
18
+ VolsegModelData.prototype.loadPdb = function (pdbId, parent) {
19
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
20
+ var url, dataNode, cifNode, trajectoryNode;
21
+ return tslib_1.__generator(this, function (_a) {
22
+ switch (_a.label) {
23
+ case 0:
24
+ url = "https://www.ebi.ac.uk/pdbe/entry-files/download/".concat(pdbId, ".bcif");
25
+ return [4 /*yield*/, this.entryData.plugin.build().to(parent).apply(data_1.Download, { url: url, isBinary: true }, { tags: ['fitted-model-data', "pdbid-".concat(pdbId)] }).commit()];
26
+ case 1:
27
+ dataNode = _a.sent();
28
+ return [4 /*yield*/, this.entryData.plugin.build().to(dataNode).apply(data_1.ParseCif).commit()];
29
+ case 2:
30
+ cifNode = _a.sent();
31
+ return [4 /*yield*/, this.entryData.plugin.build().to(cifNode).apply(model_1.TrajectoryFromMmCif).commit()];
32
+ case 3:
33
+ trajectoryNode = _a.sent();
34
+ return [4 /*yield*/, this.entryData.plugin.builders.structure.hierarchy.applyPreset(trajectoryNode, 'default', { representationPreset: 'polymer-cartoon' })];
35
+ case 4:
36
+ _a.sent();
37
+ return [2 /*return*/, dataNode];
38
+ }
39
+ });
40
+ });
41
+ };
42
+ VolsegModelData.prototype.showPdbs = function (pdbIds) {
43
+ var _a, _b, _c;
44
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
45
+ var segmentsToShow, visuals, _i, visuals_1, visual, theTag, id, visibility, segmentsToCreate, group, newGroupNode, awaiting, _d, segmentsToCreate_1, pdbId, _e, awaiting_1, promise;
46
+ return tslib_1.__generator(this, function (_f) {
47
+ switch (_f.label) {
48
+ case 0:
49
+ segmentsToShow = new Set(pdbIds);
50
+ visuals = this.entryData.findNodesByTags('fitted-model-data');
51
+ for (_i = 0, visuals_1 = visuals; _i < visuals_1.length; _i++) {
52
+ visual = visuals_1[_i];
53
+ theTag = (_b = (_a = visual.obj) === null || _a === void 0 ? void 0 : _a.tags) === null || _b === void 0 ? void 0 : _b.find(function (tag) { return tag.startsWith('pdbid-'); });
54
+ if (!theTag)
55
+ continue;
56
+ id = theTag.split('-')[1];
57
+ visibility = segmentsToShow.has(id);
58
+ (0, state_1.setSubtreeVisibility)(this.entryData.plugin.state.data, visual.transform.ref, !visibility); // true means hide, ¯\_(ツ)_/¯
59
+ segmentsToShow.delete(id);
60
+ }
61
+ segmentsToCreate = Array.from(segmentsToShow);
62
+ if (segmentsToCreate.length === 0)
63
+ return [2 /*return*/];
64
+ group = (_c = this.entryData.findNodesByTags('fitted-models-group')[0]) === null || _c === void 0 ? void 0 : _c.transform.ref;
65
+ if (!!group) return [3 /*break*/, 2];
66
+ return [4 /*yield*/, this.entryData.newUpdate().apply(misc_1.CreateGroup, { label: 'Fitted Models' }, { tags: ['fitted-models-group'], state: { isCollapsed: true } }).commit()];
67
+ case 1:
68
+ newGroupNode = _f.sent();
69
+ group = newGroupNode.ref;
70
+ _f.label = 2;
71
+ case 2:
72
+ awaiting = [];
73
+ for (_d = 0, segmentsToCreate_1 = segmentsToCreate; _d < segmentsToCreate_1.length; _d++) {
74
+ pdbId = segmentsToCreate_1[_d];
75
+ awaiting.push(this.loadPdb(pdbId, group));
76
+ }
77
+ _e = 0, awaiting_1 = awaiting;
78
+ _f.label = 3;
79
+ case 3:
80
+ if (!(_e < awaiting_1.length)) return [3 /*break*/, 6];
81
+ promise = awaiting_1[_e];
82
+ return [4 /*yield*/, promise];
83
+ case 4:
84
+ _f.sent();
85
+ _f.label = 5;
86
+ case 5:
87
+ _e++;
88
+ return [3 /*break*/, 3];
89
+ case 6: return [2 /*return*/];
90
+ }
91
+ });
92
+ });
93
+ };
94
+ return VolsegModelData;
95
+ }());
96
+ exports.VolsegModelData = VolsegModelData;