molstar 3.5.0 → 3.6.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 (284) hide show
  1. package/build/viewer/index.html +1 -1
  2. package/build/viewer/molstar.js +1 -1
  3. package/build/viewer/molstar.js.LICENSE.txt +12 -14
  4. package/lib/apps/docking-viewer/index.js +1 -1
  5. package/lib/apps/viewer/app.js +1 -1
  6. package/lib/apps/viewer/index.html +1 -1
  7. package/lib/cli/chem-comp-dict/util.d.ts +20 -20
  8. package/lib/cli/cifschema/util/cif-dic.d.ts +1 -1
  9. package/lib/cli/cifschema/util/cif-dic.js +7 -5
  10. package/lib/cli/cifschema/util/generate.d.ts +1 -1
  11. package/lib/cli/cifschema/util/generate.js +12 -3
  12. package/lib/cli/cifschema/util/schema.d.ts +3 -3
  13. package/lib/cli/cifschema/util/schema.js +1 -1
  14. package/lib/commonjs/apps/docking-viewer/index.js +2 -2
  15. package/lib/commonjs/apps/viewer/app.js +2 -2
  16. package/lib/commonjs/cli/chem-comp-dict/util.d.ts +20 -20
  17. package/lib/commonjs/cli/cifschema/util/cif-dic.d.ts +1 -1
  18. package/lib/commonjs/cli/cifschema/util/cif-dic.js +7 -5
  19. package/lib/commonjs/cli/cifschema/util/generate.d.ts +1 -1
  20. package/lib/commonjs/cli/cifschema/util/generate.js +12 -3
  21. package/lib/commonjs/cli/cifschema/util/schema.d.ts +3 -3
  22. package/lib/commonjs/cli/cifschema/util/schema.js +1 -1
  23. package/lib/commonjs/examples/alpha-orbitals/index.js +2 -2
  24. package/lib/commonjs/examples/basic-wrapper/index.js +2 -2
  25. package/lib/commonjs/examples/lighting/index.js +2 -2
  26. package/lib/commonjs/examples/proteopedia-wrapper/index.js +2 -2
  27. package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -0
  28. package/lib/commonjs/extensions/anvil/representation.d.ts +4 -0
  29. package/lib/commonjs/extensions/cellpack/representation.d.ts +1 -0
  30. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  31. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -0
  32. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -0
  33. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +5 -0
  34. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -0
  35. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +1 -0
  36. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  37. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -0
  38. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  39. package/lib/commonjs/mol-data/db/column.d.ts +10 -3
  40. package/lib/commonjs/mol-data/db/column.js +39 -17
  41. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +4 -2
  42. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +2 -2
  43. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  44. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +2 -2
  45. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +2 -1
  46. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +2 -2
  47. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +2 -1
  48. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -2
  49. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.d.ts +2 -2
  50. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +2 -2
  51. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  52. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  53. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +2 -2
  54. package/lib/commonjs/mol-gl/shader/image.frag.js +2 -2
  55. package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +2 -2
  56. package/lib/commonjs/mol-gl/shader/lines.frag.js +2 -2
  57. package/lib/commonjs/mol-gl/shader/points.frag.d.ts +2 -2
  58. package/lib/commonjs/mol-gl/shader/points.frag.js +2 -2
  59. package/lib/commonjs/mol-gl/shader/text.frag.d.ts +2 -2
  60. package/lib/commonjs/mol-gl/shader/text.frag.js +2 -2
  61. package/lib/commonjs/mol-gl/webgl/buffer.d.ts +2 -2
  62. package/lib/commonjs/mol-gl/webgl/buffer.js +12 -12
  63. package/lib/commonjs/mol-gl/webgl/program.d.ts +1 -1
  64. package/lib/commonjs/mol-gl/webgl/program.js +10 -4
  65. package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +8 -8
  66. package/lib/commonjs/mol-io/reader/cif/schema/bird.js +12 -11
  67. package/lib/commonjs/mol-io/reader/cif/schema/ccd-extras.d.ts +1 -1
  68. package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +12 -12
  69. package/lib/commonjs/mol-io/reader/cif/schema/ccd.js +13 -12
  70. package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.d.ts +5 -5
  71. package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.js +2 -2
  72. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +30 -26
  73. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +44 -39
  74. package/lib/commonjs/mol-io/reader/cif/schema.d.ts +1 -1
  75. package/lib/commonjs/mol-io/reader/cif/schema.js +22 -2
  76. package/lib/commonjs/mol-io/writer/mol/encoder.js +1 -1
  77. package/lib/commonjs/mol-model/structure/model/model.js +14 -6
  78. package/lib/commonjs/mol-model/structure/model/properties/common.js +1 -1
  79. package/lib/commonjs/mol-model/structure/model/types.d.ts +19 -17
  80. package/lib/commonjs/mol-model/structure/model/types.js +30 -31
  81. package/lib/commonjs/mol-model/structure/query/queries/generators.js +1 -1
  82. package/lib/commonjs/mol-model/structure/structure/properties.d.ts +1 -1
  83. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +2 -4
  84. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +1 -3
  85. package/lib/commonjs/mol-model/structure/structure/unit/rings.js +3 -0
  86. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +2 -0
  87. package/lib/commonjs/mol-model-formats/structure/basic/entities.js +1 -1
  88. package/lib/commonjs/mol-model-formats/structure/basic/schema.d.ts +2 -2
  89. package/lib/commonjs/mol-model-formats/structure/common/component.d.ts +3 -3
  90. package/lib/commonjs/mol-model-formats/structure/common/component.js +46 -46
  91. package/lib/commonjs/mol-model-formats/structure/pdb/atom-site.d.ts +2 -2
  92. package/lib/commonjs/mol-model-formats/structure/pdb/atom-site.js +72 -7
  93. package/lib/commonjs/mol-model-formats/structure/pdb/secondary-structure.js +11 -11
  94. package/lib/commonjs/mol-model-formats/structure/pdb/to-cif.js +7 -2
  95. package/lib/commonjs/mol-model-formats/structure/property/bonds/chem_comp.js +1 -1
  96. package/lib/commonjs/mol-model-formats/structure/property/bonds/struct_conn.js +1 -1
  97. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  98. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  99. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +3 -0
  100. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  101. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/util.js +3 -2
  102. package/lib/commonjs/mol-plugin/commands.d.ts +1 -0
  103. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +3 -0
  104. package/lib/commonjs/mol-plugin-state/actions/structure.d.ts +6 -6
  105. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  106. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +1 -1
  107. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +6 -0
  108. package/lib/commonjs/mol-plugin-ui/react18.d.ts +11 -0
  109. package/lib/commonjs/mol-plugin-ui/react18.js +38 -0
  110. package/lib/commonjs/mol-plugin-ui/structure/focus.d.ts +1 -1
  111. package/lib/commonjs/mol-plugin-ui/structure/focus.js +2 -2
  112. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +1 -0
  113. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +1 -0
  114. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +1 -0
  115. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +1 -0
  116. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +1 -0
  117. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +3 -0
  118. package/lib/commonjs/mol-repr/structure/params.d.ts +4 -0
  119. package/lib/commonjs/mol-repr/structure/registry.d.ts +10 -0
  120. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -0
  121. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  122. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  123. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +3 -0
  124. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  125. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  126. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  127. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +3 -0
  128. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +3 -0
  129. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +3 -0
  130. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +4 -0
  131. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  132. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  133. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  134. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  135. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  136. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +2 -0
  137. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  138. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  139. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  140. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  141. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  142. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  143. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  144. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  145. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  146. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  147. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  148. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  149. package/lib/commonjs/mol-repr/util.d.ts +2 -1
  150. package/lib/commonjs/mol-repr/util.js +2 -2
  151. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +5 -0
  152. package/lib/commonjs/mol-repr/volume/registry.d.ts +1 -0
  153. package/lib/examples/alpha-orbitals/index.js +1 -1
  154. package/lib/examples/basic-wrapper/index.js +1 -1
  155. package/lib/examples/lighting/index.js +1 -1
  156. package/lib/examples/proteopedia-wrapper/index.js +1 -1
  157. package/lib/extensions/anvil/behavior.d.ts +1 -0
  158. package/lib/extensions/anvil/representation.d.ts +4 -0
  159. package/lib/extensions/cellpack/representation.d.ts +1 -0
  160. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  161. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -0
  162. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -0
  163. package/lib/extensions/rcsb/validation-report/representation.d.ts +5 -0
  164. package/lib/mol-canvas3d/canvas3d.d.ts +2 -0
  165. package/lib/mol-canvas3d/helper/camera-helper.d.ts +1 -0
  166. package/lib/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  167. package/lib/mol-canvas3d/helper/helper.d.ts +2 -0
  168. package/lib/mol-canvas3d/passes/image.d.ts +1 -0
  169. package/lib/mol-data/db/column.d.ts +10 -3
  170. package/lib/mol-data/db/column.js +39 -18
  171. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +4 -2
  172. package/lib/mol-geo/geometry/cylinders/cylinders.js +2 -2
  173. package/lib/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  174. package/lib/mol-geo/geometry/mesh/mesh.js +2 -2
  175. package/lib/mol-geo/geometry/spheres/spheres.d.ts +2 -1
  176. package/lib/mol-geo/geometry/spheres/spheres.js +2 -2
  177. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +2 -1
  178. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -2
  179. package/lib/mol-gl/shader/chunks/wboit-write.glsl.d.ts +2 -2
  180. package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +2 -2
  181. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  182. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  183. package/lib/mol-gl/shader/image.frag.d.ts +2 -2
  184. package/lib/mol-gl/shader/image.frag.js +2 -2
  185. package/lib/mol-gl/shader/lines.frag.d.ts +2 -2
  186. package/lib/mol-gl/shader/lines.frag.js +2 -2
  187. package/lib/mol-gl/shader/points.frag.d.ts +2 -2
  188. package/lib/mol-gl/shader/points.frag.js +2 -2
  189. package/lib/mol-gl/shader/text.frag.d.ts +2 -2
  190. package/lib/mol-gl/shader/text.frag.js +2 -2
  191. package/lib/mol-gl/webgl/buffer.d.ts +2 -2
  192. package/lib/mol-gl/webgl/buffer.js +12 -12
  193. package/lib/mol-gl/webgl/program.d.ts +1 -1
  194. package/lib/mol-gl/webgl/program.js +10 -4
  195. package/lib/mol-io/reader/cif/schema/bird.d.ts +8 -8
  196. package/lib/mol-io/reader/cif/schema/bird.js +12 -11
  197. package/lib/mol-io/reader/cif/schema/ccd-extras.d.ts +1 -1
  198. package/lib/mol-io/reader/cif/schema/ccd.d.ts +12 -12
  199. package/lib/mol-io/reader/cif/schema/ccd.js +13 -12
  200. package/lib/mol-io/reader/cif/schema/mmcif-extras.d.ts +5 -5
  201. package/lib/mol-io/reader/cif/schema/mmcif-extras.js +2 -2
  202. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +30 -26
  203. package/lib/mol-io/reader/cif/schema/mmcif.js +44 -39
  204. package/lib/mol-io/reader/cif/schema.d.ts +1 -1
  205. package/lib/mol-io/reader/cif/schema.js +22 -2
  206. package/lib/mol-io/writer/mol/encoder.js +1 -1
  207. package/lib/mol-model/structure/model/model.js +14 -6
  208. package/lib/mol-model/structure/model/properties/common.js +1 -1
  209. package/lib/mol-model/structure/model/types.d.ts +19 -17
  210. package/lib/mol-model/structure/model/types.js +30 -31
  211. package/lib/mol-model/structure/query/queries/generators.js +1 -1
  212. package/lib/mol-model/structure/structure/properties.d.ts +1 -1
  213. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +2 -4
  214. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +1 -3
  215. package/lib/mol-model/structure/structure/unit/rings.js +3 -0
  216. package/lib/mol-model-formats/shape/ply.d.ts +2 -0
  217. package/lib/mol-model-formats/structure/basic/entities.js +1 -1
  218. package/lib/mol-model-formats/structure/basic/schema.d.ts +2 -2
  219. package/lib/mol-model-formats/structure/common/component.d.ts +3 -3
  220. package/lib/mol-model-formats/structure/common/component.js +46 -46
  221. package/lib/mol-model-formats/structure/pdb/atom-site.d.ts +2 -2
  222. package/lib/mol-model-formats/structure/pdb/atom-site.js +72 -7
  223. package/lib/mol-model-formats/structure/pdb/secondary-structure.js +11 -11
  224. package/lib/mol-model-formats/structure/pdb/to-cif.js +7 -2
  225. package/lib/mol-model-formats/structure/property/bonds/chem_comp.js +1 -1
  226. package/lib/mol-model-formats/structure/property/bonds/struct_conn.js +1 -1
  227. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  228. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  229. package/lib/mol-model-props/computed/representations/interactions.d.ts +3 -0
  230. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  231. package/lib/mol-plugin/behavior/dynamic/volume-streaming/util.js +3 -2
  232. package/lib/mol-plugin/commands.d.ts +1 -0
  233. package/lib/mol-plugin/util/viewport-screenshot.d.ts +3 -0
  234. package/lib/mol-plugin/version.js +2 -2
  235. package/lib/mol-plugin-state/actions/structure.d.ts +6 -6
  236. package/lib/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  237. package/lib/mol-plugin-state/helpers/structure-selection-query.js +1 -1
  238. package/lib/mol-plugin-state/transforms/representation.d.ts +6 -0
  239. package/lib/mol-plugin-ui/react18.d.ts +11 -0
  240. package/lib/mol-plugin-ui/react18.js +34 -0
  241. package/lib/mol-plugin-ui/structure/focus.d.ts +1 -1
  242. package/lib/mol-plugin-ui/structure/focus.js +2 -2
  243. package/lib/mol-repr/shape/loci/angle.d.ts +1 -0
  244. package/lib/mol-repr/shape/loci/dihedral.d.ts +1 -0
  245. package/lib/mol-repr/shape/loci/orientation.d.ts +1 -0
  246. package/lib/mol-repr/shape/loci/plane.d.ts +1 -0
  247. package/lib/mol-repr/shape/model/unitcell.d.ts +1 -0
  248. package/lib/mol-repr/structure/complex-visual.d.ts +3 -0
  249. package/lib/mol-repr/structure/params.d.ts +4 -0
  250. package/lib/mol-repr/structure/registry.d.ts +10 -0
  251. package/lib/mol-repr/structure/representation/backbone.d.ts +3 -0
  252. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  253. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  254. package/lib/mol-repr/structure/representation/cartoon.d.ts +3 -0
  255. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  256. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  257. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  258. package/lib/mol-repr/structure/representation/orientation.d.ts +3 -0
  259. package/lib/mol-repr/structure/representation/putty.d.ts +3 -0
  260. package/lib/mol-repr/structure/representation/spacefill.d.ts +3 -0
  261. package/lib/mol-repr/structure/units-visual.d.ts +4 -0
  262. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  263. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  264. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  265. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  266. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  267. package/lib/mol-repr/structure/visual/element-sphere.d.ts +2 -0
  268. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  269. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  270. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  271. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  272. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  273. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  274. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  275. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  276. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  277. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  278. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  279. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  280. package/lib/mol-repr/util.d.ts +2 -1
  281. package/lib/mol-repr/util.js +2 -2
  282. package/lib/mol-repr/volume/isosurface.d.ts +5 -0
  283. package/lib/mol-repr/volume/registry.d.ts +1 -0
  284. package/package.json +8 -6
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -122,63 +122,65 @@ exports.NucleicBackboneAtoms = new Set([
122
122
  ]);
123
123
  /** Chemical component type names for D-linked protein */
124
124
  exports.DProteinComponentTypeNames = new Set([
125
- 'D-PEPTIDE LINKING', 'D-PEPTIDE NH3 AMINO TERMINUS',
126
- 'D-PEPTIDE COOH CARBOXY TERMINUS', 'D-GAMMA-PEPTIDE, C-DELTA LINKING',
127
- 'D-BETA-PEPTIDE, C-GAMMA LINKING'
125
+ 'd-peptide linking', 'd-peptide nh3 amino terminus',
126
+ 'd-peptide cooh carboxy terminus', 'd-gamma-peptide, c-delta linking',
127
+ 'd-beta-peptide, c-gamma linking'
128
128
  ]);
129
129
  /** Chemical component type names for L-linked protein */
130
130
  exports.LProteinComponentTypeNames = new Set([
131
- 'L-PEPTIDE LINKING', 'L-PEPTIDE NH3 AMINO TERMINUS',
132
- 'L-PEPTIDE COOH CARBOXY TERMINUS', 'L-GAMMA-PEPTIDE, C-DELTA LINKING',
133
- 'L-BETA-PEPTIDE, C-GAMMA LINKING'
131
+ 'l-peptide linking', 'l-peptide nh3 amino terminus',
132
+ 'l-peptide cooh carboxy terminus', 'l-gamma-peptide, c-delta linking',
133
+ 'l-beta-peptide, c-gamma linking'
134
134
  ]);
135
135
  /** Chemical component type names for gamma protein, overlaps with D/L-linked */
136
136
  exports.GammaProteinComponentTypeNames = new Set([
137
- 'D-GAMMA-PEPTIDE, C-DELTA LINKING', 'L-GAMMA-PEPTIDE, C-DELTA LINKING'
137
+ 'd-gamma-peptide, c-delta linking', 'l-gamma-peptide, c-delta linking'
138
138
  ]);
139
139
  /** Chemical component type names for beta protein, overlaps with D/L-linked */
140
140
  exports.BetaProteinComponentTypeNames = new Set([
141
- 'D-BETA-PEPTIDE, C-GAMMA LINKING', 'L-BETA-PEPTIDE, C-GAMMA LINKING'
141
+ 'd-beta-peptide, c-gamma linking', 'l-beta-peptide, c-gamma linking'
142
142
  ]);
143
143
  /** Chemical component type names for protein termini, overlaps with D/L-linked */
144
144
  exports.ProteinTerminusComponentTypeNames = new Set([
145
- 'D-PEPTIDE NH3 AMINO TERMINUS', 'D-PEPTIDE COOH CARBOXY TERMINUS',
146
- 'L-PEPTIDE NH3 AMINO TERMINUS', 'L-PEPTIDE COOH CARBOXY TERMINUS'
145
+ 'd-peptide nh3 amino terminus', 'd-peptide cooh carboxy terminus',
146
+ 'l-peptide nh3 amino terminus', 'l-peptide cooh carboxy terminus'
147
147
  ]);
148
148
  /** Chemical component type names for peptide-like protein */
149
149
  exports.OtherProteinComponentTypeNames = new Set([
150
- 'PEPTIDE LINKING', 'PEPTIDE-LIKE',
150
+ 'peptide linking', 'peptide-like',
151
151
  ]);
152
152
  /** Chemical component type names for protein */
153
153
  exports.ProteinComponentTypeNames = set_1.SetUtils.unionMany(exports.DProteinComponentTypeNames, exports.LProteinComponentTypeNames, exports.OtherProteinComponentTypeNames);
154
154
  /** Chemical component type names for DNA */
155
155
  exports.DNAComponentTypeNames = new Set([
156
- 'DNA LINKING', 'L-DNA LINKING', 'DNA OH 5 PRIME TERMINUS', 'DNA OH 3 PRIME TERMINUS',
156
+ 'dna linking', 'l-dna linking', 'dna oh 5 prime terminus', 'dna oh 3 prime terminus',
157
157
  ]);
158
158
  /** Chemical component type names for RNA */
159
159
  exports.RNAComponentTypeNames = new Set([
160
- 'RNA LINKING', 'L-RNA LINKING', 'RNA OH 5 PRIME TERMINUS', 'RNA OH 3 PRIME TERMINUS',
160
+ 'rna linking', 'l-rna linking', 'rna oh 5 prime terminus', 'rna oh 3 prime terminus',
161
161
  ]);
162
162
  /** Chemical component type names for saccharide */
163
- exports.SaccharideComponentTypeNames = new Set([
164
- 'D-SACCHARIDE, BETA LINKING', 'L-SACCHARIDE, BETA LINKING',
165
- 'D-SACCHARIDE, ALPHA LINKING', 'L-SACCHARIDE, ALPHA LINKING',
166
- 'L-SACCHARIDE', 'D-SACCHARIDE', 'SACCHARIDE',
167
- // the following four are marked to be deprecated in the mmCIF dictionary
168
- 'D-SACCHARIDE 1,4 AND 1,4 LINKING', 'L-SACCHARIDE 1,4 AND 1,4 LINKING',
169
- 'D-SACCHARIDE 1,4 AND 1,6 LINKING', 'L-SACCHARIDE 1,4 AND 1,6 LINKING',
170
- ]);
163
+ exports.SaccharideComponentTypeNames = set_1.SetUtils.unionMany(new Set([
164
+ 'd-saccharide, beta linking', 'l-saccharide, beta linking',
165
+ 'd-saccharide, alpha linking', 'l-saccharide, alpha linking',
166
+ 'l-saccharide', 'd-saccharide', 'saccharide',
167
+ ]),
168
+ // deprecated in the mmCIF dictionary, kept for backward compatibility
169
+ new Set([
170
+ 'd-saccharide 1,4 and 1,4 linking', 'l-saccharide 1,4 and 1,4 linking',
171
+ 'd-saccharide 1,4 and 1,6 linking', 'l-saccharide 1,4 and 1,6 linking'
172
+ ]));
171
173
  /** Chemical component type names for other */
172
174
  exports.OtherComponentTypeNames = new Set([
173
- 'NON-POLYMER', 'OTHER'
175
+ 'non-polymer', 'other'
174
176
  ]);
175
177
  /** Chemical component type names for ion (extension to mmcif) */
176
178
  exports.IonComponentTypeNames = new Set([
177
- 'ION'
179
+ 'ion'
178
180
  ]);
179
181
  /** Chemical component type names for lipid (extension to mmcif) */
180
182
  exports.LipidComponentTypeNames = new Set([
181
- 'LIPID'
183
+ 'lipid'
182
184
  ]);
183
185
  /** Common names for water molecules */
184
186
  exports.WaterNames = new Set([
@@ -237,7 +239,6 @@ exports.isPyrimidineBase = isPyrimidineBase;
237
239
  exports.PolymerNames = set_1.SetUtils.unionMany(exports.AminoAcidNames, exports.BaseNames);
238
240
  /** get the molecule type from component type and id */
239
241
  function getMoleculeType(compType, compId) {
240
- compType = compType.toUpperCase();
241
242
  compId = compId.toUpperCase();
242
243
  if (exports.PeptideBaseNames.has(compId)) {
243
244
  return 8 /* PNA */;
@@ -265,7 +266,7 @@ function getMoleculeType(compType, compId) {
265
266
  }
266
267
  else if (exports.OtherComponentTypeNames.has(compType)) {
267
268
  if (constants_1.SaccharideCompIdMap.has(compId)) {
268
- // trust our saccharide table more than given 'non-polymer' or 'other' component type
269
+ // trust our saccharide table more than given 'NON-POLYMER' or 'OTHER' component type
269
270
  return 9 /* Saccharide */;
270
271
  }
271
272
  else if (exports.AminoAcidNames.has(compId)) {
@@ -287,7 +288,6 @@ function getMoleculeType(compType, compId) {
287
288
  }
288
289
  exports.getMoleculeType = getMoleculeType;
289
290
  function getPolymerType(compType, molType) {
290
- compType = compType.toUpperCase();
291
291
  if (molType === 5 /* Protein */) {
292
292
  if (exports.GammaProteinComponentTypeNames.has(compType)) {
293
293
  return 2 /* GammaProtein */;
@@ -322,10 +322,10 @@ function getComponentType(compId) {
322
322
  return 'peptide linking';
323
323
  }
324
324
  else if (exports.RnaBaseNames.has(compId)) {
325
- return 'RNA linking';
325
+ return 'rna linking';
326
326
  }
327
327
  else if (exports.DnaBaseNames.has(compId)) {
328
- return 'DNA linking';
328
+ return 'dna linking';
329
329
  }
330
330
  else if (constants_1.SaccharideCompIdMap.has(compId)) {
331
331
  return 'saccharide';
@@ -367,7 +367,6 @@ function getEntityType(compId) {
367
367
  exports.getEntityType = getEntityType;
368
368
  function getEntitySubtype(compId, compType) {
369
369
  compId = compId.toUpperCase();
370
- compType = compType.toUpperCase();
371
370
  if (exports.LProteinComponentTypeNames.has(compType)) {
372
371
  return 'polypeptide(L)';
373
372
  }
@@ -330,7 +330,7 @@ function bondedAtomicPairs(bondTest) {
330
330
  atomicBond.a.unit = structure.unitMap.get(bond.unitA);
331
331
  atomicBond.a.element = atomicBond.a.unit.elements[bond.indexA];
332
332
  atomicBond.aIndex = bond.indexA;
333
- atomicBond.b.unit = structure.unitMap.get(bond.unitA);
333
+ atomicBond.b.unit = structure.unitMap.get(bond.unitB);
334
334
  atomicBond.b.element = atomicBond.b.unit.elements[bond.indexB];
335
335
  atomicBond.bIndex = bond.indexB;
336
336
  atomicBond.order = bond.props.order;
@@ -41,7 +41,7 @@ declare const StructureProperties: {
41
41
  microheterogeneityCompIds: StructureElement.Property<string[]>;
42
42
  secondary_structure_type: StructureElement.Property<SecondaryStructureType>;
43
43
  secondary_structure_key: StructureElement.Property<number>;
44
- chem_comp_type: StructureElement.Property<"other" | "D-peptide linking" | "L-peptide linking" | "D-peptide NH3 amino terminus" | "L-peptide NH3 amino terminus" | "D-peptide COOH carboxy terminus" | "L-peptide COOH carboxy terminus" | "DNA linking" | "RNA linking" | "L-RNA linking" | "L-DNA linking" | "DNA OH 5 prime terminus" | "RNA OH 5 prime terminus" | "DNA OH 3 prime terminus" | "RNA OH 3 prime terminus" | "D-saccharide, beta linking" | "D-saccharide, alpha linking" | "L-saccharide, beta linking" | "L-saccharide, alpha linking" | "L-saccharide" | "D-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "L-gamma-peptide, C-delta linking" | "D-gamma-peptide, C-delta linking" | "L-beta-peptide, C-gamma linking" | "D-beta-peptide, C-gamma linking" | "Ion" | "Lipid">;
44
+ chem_comp_type: StructureElement.Property<"other" | "d-peptide linking" | "l-peptide linking" | "d-peptide nh3 amino terminus" | "l-peptide nh3 amino terminus" | "d-peptide cooh carboxy terminus" | "l-peptide cooh carboxy terminus" | "dna linking" | "rna linking" | "l-rna linking" | "l-dna linking" | "dna oh 5 prime terminus" | "rna oh 5 prime terminus" | "dna oh 3 prime terminus" | "rna oh 3 prime terminus" | "d-saccharide, beta linking" | "d-saccharide, alpha linking" | "l-saccharide, beta linking" | "l-saccharide, alpha linking" | "l-saccharide" | "d-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "l-gamma-peptide, c-delta linking" | "d-gamma-peptide, c-delta linking" | "l-beta-peptide, c-gamma linking" | "d-beta-peptide, c-gamma linking" | "ion" | "lipid">;
45
45
  };
46
46
  chain: {
47
47
  key: StructureElement.Property<import("../model").ChainIndex>;
@@ -170,10 +170,8 @@ var DefaultInterBondComputationProps = tslib_1.__assign(tslib_1.__assign({}, com
170
170
  function findBonds(structure, props) {
171
171
  var builder = new inter_unit_graph_1.InterUnitGraph.Builder();
172
172
  var hasIndexPairBonds = structure.models.some(function (m) { return index_pair_1.IndexPairBonds.Provider.get(m); });
173
- if (props.noCompute || (structure.isCoarseGrained && !hasIndexPairBonds)) {
174
- // TODO add function that only adds bonds defined in structConn and avoids using
175
- // structure.lookup and unit.lookup (expensive for large structure and not
176
- // needed for archival files or files with an MD topology)
173
+ var hasExhaustiveStructConn = structure.models.some(function (m) { return struct_conn_1.StructConn.isExhaustive(m); });
174
+ if (props.noCompute || (structure.isCoarseGrained && !hasIndexPairBonds && !hasExhaustiveStructConn)) {
177
175
  return new data_1.InterUnitBonds(builder.getMap());
178
176
  }
179
177
  structure_1.Structure.eachUnitPair(structure, function (unitA, unitB) {
@@ -224,9 +224,7 @@ function findBonds(unit, props) {
224
224
  }
225
225
  function computeIntraUnitBonds(unit, props) {
226
226
  var p = tslib_1.__assign(tslib_1.__assign({}, common_1.DefaultBondComputationProps), props);
227
- if (p.noCompute || model_1.Model.isCoarseGrained(unit.model)) {
228
- // TODO add function that only adds bonds defined in structConn of chemCompBond
229
- // and avoid using unit.lookup
227
+ if (p.noCompute || (model_1.Model.isCoarseGrained(unit.model) && !index_pair_1.IndexPairBonds.Provider.get(unit.model) && !struct_conn_1.StructConn.isExhaustive(unit.model))) {
230
228
  return data_1.IntraUnitBonds.Empty;
231
229
  }
232
230
  if (!p.forceCompute && index_pair_1.IndexPairBonds.Provider.get(unit.model)) {
@@ -131,6 +131,9 @@ var UnitRing;
131
131
  return false;
132
132
  if (ring.length < 5)
133
133
  return false;
134
+ // no planarity-based aromaticity if any aromatic flags are present
135
+ if (aromaticBondCount > 0)
136
+ return false;
134
137
  var ma = principal_axes_1.PrincipalAxes.calculateMomentsAxes((0, util_1.getPositions)(unit, ring));
135
138
  return linear_algebra_1.Vec3.magnitude(ma.dirC) < AromaticRingPlanarityThreshold;
136
139
  }
@@ -30,6 +30,7 @@ export declare const PlyShapeParams: {
30
30
  flatShaded: PD.BooleanParam;
31
31
  ignoreLight: PD.BooleanParam;
32
32
  xrayShaded: PD.BooleanParam;
33
+ allowTransparentBackfaces: PD.BooleanParam;
33
34
  bumpFrequency: PD.Numeric;
34
35
  bumpAmplitude: PD.Numeric;
35
36
  alpha: PD.Numeric;
@@ -71,6 +72,7 @@ export declare function shapeFromPly(source: PlyFile, params?: {}): Task<ShapePr
71
72
  flatShaded: PD.BooleanParam;
72
73
  ignoreLight: PD.BooleanParam;
73
74
  xrayShaded: PD.BooleanParam;
75
+ allowTransparentBackfaces: PD.BooleanParam;
74
76
  bumpFrequency: PD.Numeric;
75
77
  bumpAmplitude: PD.Numeric;
76
78
  alpha: PD.Numeric;
@@ -99,7 +99,7 @@ function getEntityData(data) {
99
99
  var entityId = label_entity_id.value(i);
100
100
  if (!entityIds.has(entityId)) {
101
101
  var compId = label_comp_id.value(i);
102
- var compType = chemCompType.get(compId) || '';
102
+ var compType = chemCompType.get(compId) || 'other';
103
103
  subtypes[getEntityIndex(entityId)] = (0, types_1.getEntitySubtype)(compId, compType);
104
104
  entityIds.add(entityId);
105
105
  }
@@ -88,7 +88,7 @@ export declare const BasicSchema: {
88
88
  type: import("../../../mol-data/db/column").Column.Schema.Aliased<"oligosaccharide">;
89
89
  };
90
90
  chem_comp: {
91
- type: import("../../../mol-data/db/column").Column.Schema.Aliased<"other" | "D-peptide linking" | "L-peptide linking" | "D-peptide NH3 amino terminus" | "L-peptide NH3 amino terminus" | "D-peptide COOH carboxy terminus" | "L-peptide COOH carboxy terminus" | "DNA linking" | "RNA linking" | "L-RNA linking" | "L-DNA linking" | "DNA OH 5 prime terminus" | "RNA OH 5 prime terminus" | "DNA OH 3 prime terminus" | "RNA OH 3 prime terminus" | "D-saccharide, beta linking" | "D-saccharide, alpha linking" | "L-saccharide, beta linking" | "L-saccharide, alpha linking" | "L-saccharide" | "D-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "L-gamma-peptide, C-delta linking" | "D-gamma-peptide, C-delta linking" | "L-beta-peptide, C-gamma linking" | "D-beta-peptide, C-gamma linking" | "Ion" | "Lipid">;
91
+ type: import("../../../mol-data/db/column").Column.Schema.Aliased<"other" | "d-peptide linking" | "l-peptide linking" | "d-peptide nh3 amino terminus" | "l-peptide nh3 amino terminus" | "d-peptide cooh carboxy terminus" | "l-peptide cooh carboxy terminus" | "dna linking" | "rna linking" | "l-rna linking" | "l-dna linking" | "dna oh 5 prime terminus" | "rna oh 5 prime terminus" | "dna oh 3 prime terminus" | "rna oh 3 prime terminus" | "d-saccharide, beta linking" | "d-saccharide, alpha linking" | "l-saccharide, beta linking" | "l-saccharide, alpha linking" | "l-saccharide" | "d-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "l-gamma-peptide, c-delta linking" | "d-gamma-peptide, c-delta linking" | "l-beta-peptide, c-gamma linking" | "d-beta-peptide, c-gamma linking" | "ion" | "lipid">;
92
92
  formula: import("../../../mol-data/db/column").Column.Schema.Str;
93
93
  formula_weight: import("../../../mol-data/db/column").Column.Schema.Float;
94
94
  id: import("../../../mol-data/db/column").Column.Schema.Str;
@@ -160,7 +160,7 @@ export declare const BasicSchema: {
160
160
  };
161
161
  pdbx_unobs_or_zero_occ_residues: {
162
162
  id: import("../../../mol-data/db/column").Column.Schema.Int;
163
- polymer_flag: import("../../../mol-data/db/column").Column.Schema.Aliased<"N" | "Y">;
163
+ polymer_flag: import("../../../mol-data/db/column").Column.Schema.Aliased<"y" | "n">;
164
164
  occupancy_flag: import("../../../mol-data/db/column").Column.Schema.Aliased<"1" | "0">;
165
165
  PDB_model_num: import("../../../mol-data/db/column").Column.Schema.Int;
166
166
  auth_asym_id: import("../../../mol-data/db/column").Column.Schema.Str;
@@ -19,7 +19,7 @@ export declare class ComponentBuilder {
19
19
  private getType;
20
20
  has(compId: string): boolean;
21
21
  get(compId: string): Table.Row<Pick<{
22
- type: Column.Schema.Aliased<"other" | "D-peptide linking" | "L-peptide linking" | "D-peptide NH3 amino terminus" | "L-peptide NH3 amino terminus" | "D-peptide COOH carboxy terminus" | "L-peptide COOH carboxy terminus" | "DNA linking" | "RNA linking" | "L-RNA linking" | "L-DNA linking" | "DNA OH 5 prime terminus" | "RNA OH 5 prime terminus" | "DNA OH 3 prime terminus" | "RNA OH 3 prime terminus" | "D-saccharide, beta linking" | "D-saccharide, alpha linking" | "L-saccharide, beta linking" | "L-saccharide, alpha linking" | "L-saccharide" | "D-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "L-gamma-peptide, C-delta linking" | "D-gamma-peptide, C-delta linking" | "L-beta-peptide, C-gamma linking" | "D-beta-peptide, C-gamma linking" | "Ion" | "Lipid">;
22
+ type: Column.Schema.Aliased<"other" | "d-peptide linking" | "l-peptide linking" | "d-peptide nh3 amino terminus" | "l-peptide nh3 amino terminus" | "d-peptide cooh carboxy terminus" | "l-peptide cooh carboxy terminus" | "dna linking" | "rna linking" | "l-rna linking" | "l-dna linking" | "dna oh 5 prime terminus" | "rna oh 5 prime terminus" | "dna oh 3 prime terminus" | "rna oh 3 prime terminus" | "d-saccharide, beta linking" | "d-saccharide, alpha linking" | "l-saccharide, beta linking" | "l-saccharide, alpha linking" | "l-saccharide" | "d-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "l-gamma-peptide, c-delta linking" | "d-gamma-peptide, c-delta linking" | "l-beta-peptide, c-gamma linking" | "d-beta-peptide, c-gamma linking" | "ion" | "lipid">;
23
23
  formula: Column.Schema.Str;
24
24
  formula_weight: Column.Schema.Float;
25
25
  id: Column.Schema.Str;
@@ -28,7 +28,7 @@ export declare class ComponentBuilder {
28
28
  pdbx_synonyms: Column.Schema.List<string>;
29
29
  }, "name" | "id" | "type">> | undefined;
30
30
  add(compId: string, index: number): Table.Row<Pick<{
31
- type: Column.Schema.Aliased<"other" | "D-peptide linking" | "L-peptide linking" | "D-peptide NH3 amino terminus" | "L-peptide NH3 amino terminus" | "D-peptide COOH carboxy terminus" | "L-peptide COOH carboxy terminus" | "DNA linking" | "RNA linking" | "L-RNA linking" | "L-DNA linking" | "DNA OH 5 prime terminus" | "RNA OH 5 prime terminus" | "DNA OH 3 prime terminus" | "RNA OH 3 prime terminus" | "D-saccharide, beta linking" | "D-saccharide, alpha linking" | "L-saccharide, beta linking" | "L-saccharide, alpha linking" | "L-saccharide" | "D-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "L-gamma-peptide, C-delta linking" | "D-gamma-peptide, C-delta linking" | "L-beta-peptide, C-gamma linking" | "D-beta-peptide, C-gamma linking" | "Ion" | "Lipid">;
31
+ type: Column.Schema.Aliased<"other" | "d-peptide linking" | "l-peptide linking" | "d-peptide nh3 amino terminus" | "l-peptide nh3 amino terminus" | "d-peptide cooh carboxy terminus" | "l-peptide cooh carboxy terminus" | "dna linking" | "rna linking" | "l-rna linking" | "l-dna linking" | "dna oh 5 prime terminus" | "rna oh 5 prime terminus" | "dna oh 3 prime terminus" | "rna oh 3 prime terminus" | "d-saccharide, beta linking" | "d-saccharide, alpha linking" | "l-saccharide, beta linking" | "l-saccharide, alpha linking" | "l-saccharide" | "d-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "l-gamma-peptide, c-delta linking" | "d-gamma-peptide, c-delta linking" | "l-beta-peptide, c-gamma linking" | "d-beta-peptide, c-gamma linking" | "ion" | "lipid">;
32
32
  formula: Column.Schema.Str;
33
33
  formula_weight: Column.Schema.Float;
34
34
  id: Column.Schema.Str;
@@ -37,7 +37,7 @@ export declare class ComponentBuilder {
37
37
  pdbx_synonyms: Column.Schema.List<string>;
38
38
  }, "name" | "id" | "type">>;
39
39
  getChemCompTable(): Table<{
40
- type: Column.Schema.Aliased<"other" | "D-peptide linking" | "L-peptide linking" | "D-peptide NH3 amino terminus" | "L-peptide NH3 amino terminus" | "D-peptide COOH carboxy terminus" | "L-peptide COOH carboxy terminus" | "DNA linking" | "RNA linking" | "L-RNA linking" | "L-DNA linking" | "DNA OH 5 prime terminus" | "RNA OH 5 prime terminus" | "DNA OH 3 prime terminus" | "RNA OH 3 prime terminus" | "D-saccharide, beta linking" | "D-saccharide, alpha linking" | "L-saccharide, beta linking" | "L-saccharide, alpha linking" | "L-saccharide" | "D-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "L-gamma-peptide, C-delta linking" | "D-gamma-peptide, C-delta linking" | "L-beta-peptide, C-gamma linking" | "D-beta-peptide, C-gamma linking" | "Ion" | "Lipid">;
40
+ type: Column.Schema.Aliased<"other" | "d-peptide linking" | "l-peptide linking" | "d-peptide nh3 amino terminus" | "l-peptide nh3 amino terminus" | "d-peptide cooh carboxy terminus" | "l-peptide cooh carboxy terminus" | "dna linking" | "rna linking" | "l-rna linking" | "l-dna linking" | "dna oh 5 prime terminus" | "rna oh 5 prime terminus" | "dna oh 3 prime terminus" | "rna oh 3 prime terminus" | "d-saccharide, beta linking" | "d-saccharide, alpha linking" | "l-saccharide, beta linking" | "l-saccharide, alpha linking" | "l-saccharide" | "d-saccharide" | "saccharide" | "non-polymer" | "peptide linking" | "peptide-like" | "l-gamma-peptide, c-delta linking" | "d-gamma-peptide, c-delta linking" | "l-beta-peptide, c-gamma linking" | "d-beta-peptide, c-gamma linking" | "ion" | "lipid">;
41
41
  formula: Column.Schema.Str;
42
42
  formula_weight: Column.Schema.Float;
43
43
  id: Column.Schema.Str;
@@ -33,45 +33,45 @@ var NonPolymerNames = new Set([
33
33
  var StandardComponents = (function () {
34
34
  var map = new Map();
35
35
  var components = [
36
- { id: 'HIS', name: 'HISTIDINE', type: 'L-peptide linking' },
37
- { id: 'ARG', name: 'ARGININE', type: 'L-peptide linking' },
38
- { id: 'LYS', name: 'LYSINE', type: 'L-peptide linking' },
39
- { id: 'ILE', name: 'ISOLEUCINE', type: 'L-peptide linking' },
40
- { id: 'PHE', name: 'PHENYLALANINE', type: 'L-peptide linking' },
41
- { id: 'LEU', name: 'LEUCINE', type: 'L-peptide linking' },
42
- { id: 'TRP', name: 'TRYPTOPHAN', type: 'L-peptide linking' },
43
- { id: 'ALA', name: 'ALANINE', type: 'L-peptide linking' },
44
- { id: 'MET', name: 'METHIONINE', type: 'L-peptide linking' },
45
- { id: 'CYS', name: 'CYSTEINE', type: 'L-peptide linking' },
46
- { id: 'ASN', name: 'ASPARAGINE', type: 'L-peptide linking' },
47
- { id: 'VAL', name: 'VALINE', type: 'L-peptide linking' },
36
+ { id: 'HIS', name: 'HISTIDINE', type: 'l-peptide linking' },
37
+ { id: 'ARG', name: 'ARGININE', type: 'l-peptide linking' },
38
+ { id: 'LYS', name: 'LYSINE', type: 'l-peptide linking' },
39
+ { id: 'ILE', name: 'ISOLEUCINE', type: 'l-peptide linking' },
40
+ { id: 'PHE', name: 'PHENYLALANINE', type: 'l-peptide linking' },
41
+ { id: 'LEU', name: 'LEUCINE', type: 'l-peptide linking' },
42
+ { id: 'TRP', name: 'TRYPTOPHAN', type: 'l-peptide linking' },
43
+ { id: 'ALA', name: 'ALANINE', type: 'l-peptide linking' },
44
+ { id: 'MET', name: 'METHIONINE', type: 'l-peptide linking' },
45
+ { id: 'CYS', name: 'CYSTEINE', type: 'l-peptide linking' },
46
+ { id: 'ASN', name: 'ASPARAGINE', type: 'l-peptide linking' },
47
+ { id: 'VAL', name: 'VALINE', type: 'l-peptide linking' },
48
48
  { id: 'GLY', name: 'GLYCINE', type: 'peptide linking' },
49
- { id: 'SER', name: 'SERINE', type: 'L-peptide linking' },
50
- { id: 'GLN', name: 'GLUTAMINE', type: 'L-peptide linking' },
51
- { id: 'TYR', name: 'TYROSINE', type: 'L-peptide linking' },
52
- { id: 'ASP', name: 'ASPARTIC ACID', type: 'L-peptide linking' },
53
- { id: 'GLU', name: 'GLUTAMIC ACID', type: 'L-peptide linking' },
54
- { id: 'THR', name: 'THREONINE', type: 'L-peptide linking' },
55
- { id: 'PRO', name: 'PROLINE', type: 'L-peptide linking' },
56
- { id: 'SEC', name: 'SELENOCYSTEINE', type: 'L-peptide linking' },
57
- { id: 'PYL', name: 'PYRROLYSINE', type: 'L-peptide linking' },
58
- { id: 'MSE', name: 'SELENOMETHIONINE', type: 'L-peptide linking' },
59
- { id: 'SEP', name: 'PHOSPHOSERINE', type: 'L-peptide linking' },
60
- { id: 'TPO', name: 'PHOSPHOTHREONINE', type: 'L-peptide linking' },
61
- { id: 'PTR', name: 'O-PHOSPHOTYROSINE', type: 'L-peptide linking' },
62
- { id: 'PCA', name: 'PYROGLUTAMIC ACID', type: 'L-peptide linking' },
63
- { id: 'A', name: 'ADENOSINE-5\'-MONOPHOSPHATE', type: 'RNA linking' },
64
- { id: 'C', name: 'CYTIDINE-5\'-MONOPHOSPHATE', type: 'RNA linking' },
65
- { id: 'T', name: 'THYMIDINE-5\'-MONOPHOSPHATE', type: 'RNA linking' },
66
- { id: 'G', name: 'GUANOSINE-5\'-MONOPHOSPHATE', type: 'RNA linking' },
67
- { id: 'I', name: 'INOSINIC ACID', type: 'RNA linking' },
68
- { id: 'U', name: 'URIDINE-5\'-MONOPHOSPHATE', type: 'RNA linking' },
69
- { id: 'DA', name: '2\'-DEOXYADENOSINE-5\'-MONOPHOSPHATE', type: 'DNA linking' },
70
- { id: 'DC', name: '2\'-DEOXYCYTIDINE-5\'-MONOPHOSPHATE', type: 'DNA linking' },
71
- { id: 'DT', name: 'THYMIDINE-5\'-MONOPHOSPHATE', type: 'DNA linking' },
72
- { id: 'DG', name: '2\'-DEOXYGUANOSINE-5\'-MONOPHOSPHATE', type: 'DNA linking' },
73
- { id: 'DI', name: '2\'-DEOXYINOSINE-5\'-MONOPHOSPHATE', type: 'DNA linking' },
74
- { id: 'DU', name: '2\'-DEOXYURIDINE-5\'-MONOPHOSPHATE', type: 'DNA linking' },
49
+ { id: 'SER', name: 'SERINE', type: 'l-peptide linking' },
50
+ { id: 'GLN', name: 'GLUTAMINE', type: 'l-peptide linking' },
51
+ { id: 'TYR', name: 'TYROSINE', type: 'l-peptide linking' },
52
+ { id: 'ASP', name: 'ASPARTIC ACID', type: 'l-peptide linking' },
53
+ { id: 'GLU', name: 'GLUTAMIC ACID', type: 'l-peptide linking' },
54
+ { id: 'THR', name: 'THREONINE', type: 'l-peptide linking' },
55
+ { id: 'PRO', name: 'PROLINE', type: 'l-peptide linking' },
56
+ { id: 'SEC', name: 'SELENOCYSTEINE', type: 'l-peptide linking' },
57
+ { id: 'PYL', name: 'PYRROLYSINE', type: 'l-peptide linking' },
58
+ { id: 'MSE', name: 'SELENOMETHIONINE', type: 'l-peptide linking' },
59
+ { id: 'SEP', name: 'PHOSPHOSERINE', type: 'l-peptide linking' },
60
+ { id: 'TPO', name: 'PHOSPHOTHREONINE', type: 'l-peptide linking' },
61
+ { id: 'PTR', name: 'O-PHOSPHOTYROSINE', type: 'l-peptide linking' },
62
+ { id: 'PCA', name: 'PYROGLUTAMIC ACID', type: 'l-peptide linking' },
63
+ { id: 'A', name: 'ADENOSINE-5\'-MONOPHOSPHATE', type: 'rna linking' },
64
+ { id: 'C', name: 'CYTIDINE-5\'-MONOPHOSPHATE', type: 'rna linking' },
65
+ { id: 'T', name: 'THYMIDINE-5\'-MONOPHOSPHATE', type: 'rna linking' },
66
+ { id: 'G', name: 'GUANOSINE-5\'-MONOPHOSPHATE', type: 'rna linking' },
67
+ { id: 'I', name: 'INOSINIC ACID', type: 'rna linking' },
68
+ { id: 'U', name: 'URIDINE-5\'-MONOPHOSPHATE', type: 'rna linking' },
69
+ { id: 'DA', name: '2\'-DEOXYADENOSINE-5\'-MONOPHOSPHATE', type: 'dna linking' },
70
+ { id: 'DC', name: '2\'-DEOXYCYTIDINE-5\'-MONOPHOSPHATE', type: 'dna linking' },
71
+ { id: 'DT', name: 'THYMIDINE-5\'-MONOPHOSPHATE', type: 'dna linking' },
72
+ { id: 'DG', name: '2\'-DEOXYGUANOSINE-5\'-MONOPHOSPHATE', type: 'dna linking' },
73
+ { id: 'DI', name: '2\'-DEOXYINOSINE-5\'-MONOPHOSPHATE', type: 'dna linking' },
74
+ { id: 'DU', name: '2\'-DEOXYURIDINE-5\'-MONOPHOSPHATE', type: 'dna linking' },
75
75
  ];
76
76
  components.forEach(function (c) { return map.set(c.id, c); });
77
77
  return map;
@@ -79,12 +79,12 @@ var StandardComponents = (function () {
79
79
  var CharmmIonComponents = (function () {
80
80
  var map = new Map();
81
81
  var components = [
82
- { id: 'ZN2', name: 'ZINC ION', type: 'Ion' },
83
- { id: 'SOD', name: 'SODIUM ION', type: 'Ion' },
84
- { id: 'CES', name: 'CESIUM ION', type: 'Ion' },
85
- { id: 'CLA', name: 'CHLORIDE ION', type: 'Ion' },
86
- { id: 'CAL', name: 'CALCIUM ION', type: 'Ion' },
87
- { id: 'POT', name: 'POTASSIUM ION', type: 'Ion' },
82
+ { id: 'ZN2', name: 'ZINC ION', type: 'ion' },
83
+ { id: 'SOD', name: 'SODIUM ION', type: 'ion' },
84
+ { id: 'CES', name: 'CESIUM ION', type: 'ion' },
85
+ { id: 'CLA', name: 'CHLORIDE ION', type: 'ion' },
86
+ { id: 'CAL', name: 'CALCIUM ION', type: 'ion' },
87
+ { id: 'POT', name: 'POTASSIUM ION', type: 'ion' },
88
88
  ];
89
89
  components.forEach(function (c) { return map.set(c.id, c); });
90
90
  return map;
@@ -133,10 +133,10 @@ var ComponentBuilder = /** @class */ (function () {
133
133
  return 'peptide linking';
134
134
  }
135
135
  else if (this.hasAtomIds(atomIds, RnaAtomIdsList)) {
136
- return 'RNA linking';
136
+ return 'rna linking';
137
137
  }
138
138
  else if (this.hasAtomIds(atomIds, DnaAtomIdsList)) {
139
- return 'DNA linking';
139
+ return 'dna linking';
140
140
  }
141
141
  else {
142
142
  return 'other';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author David Sehnal <david.sehnal@gmail.com>
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
@@ -28,7 +28,7 @@ export declare function getAtomSiteTemplate(data: string, count: number): {
28
28
  label_entity_id: string[];
29
29
  partial_charge: import("../../../mol-io/reader/common/text/tokenizer").Tokens;
30
30
  };
31
- export declare function getAtomSite(sites: AtomSiteTemplate): {
31
+ export declare function getAtomSite(sites: AtomSiteTemplate, hasTer: boolean): {
32
32
  [K in keyof mmCIF_Schema['atom_site'] | 'partial_charge']?: CifField;
33
33
  };
34
34
  export declare function addAtom(sites: AtomSiteTemplate, model: string, data: Tokenizer, s: number, e: number, isPdbqt: boolean): void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
6
6
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
@@ -37,31 +37,96 @@ function getAtomSiteTemplate(data, count) {
37
37
  };
38
38
  }
39
39
  exports.getAtomSiteTemplate = getAtomSiteTemplate;
40
- function getAtomSite(sites) {
40
+ function getAtomSite(sites, hasTer) {
41
+ var pdbx_PDB_model_num = cif_1.CifField.ofStrings(sites.pdbx_PDB_model_num);
41
42
  var auth_asym_id = cif_1.CifField.ofTokens(sites.auth_asym_id);
43
+ var auth_seq_id = cif_1.CifField.ofTokens(sites.auth_seq_id);
42
44
  var auth_atom_id = cif_1.CifField.ofTokens(sites.auth_atom_id);
43
45
  var auth_comp_id = cif_1.CifField.ofTokens(sites.auth_comp_id);
46
+ var id = cif_1.CifField.ofStrings(sites.id);
47
+ //
48
+ var currModelNum = pdbx_PDB_model_num.str(0);
49
+ var currAsymId = auth_asym_id.str(0);
50
+ var currSeqId = auth_seq_id.int(0);
51
+ var currLabelAsymId = currAsymId;
52
+ var asymIdCounts = new Map();
53
+ var atomIdCounts = new Map();
54
+ var labelAsymIds = [];
55
+ var labelAtomIds = [];
56
+ // ensure unique asym ids per model and unique atom ids per seq id
57
+ for (var i = 0, il = id.rowCount; i < il; ++i) {
58
+ var modelNum = pdbx_PDB_model_num.str(i);
59
+ var asymId = auth_asym_id.str(i);
60
+ var seqId = auth_seq_id.int(i);
61
+ var atomId = auth_atom_id.str(i);
62
+ var asymIdChanged = false;
63
+ if (modelNum !== currModelNum) {
64
+ asymIdCounts.clear();
65
+ atomIdCounts.clear();
66
+ currModelNum = modelNum;
67
+ currAsymId = asymId;
68
+ currSeqId = seqId;
69
+ asymIdChanged = true;
70
+ currLabelAsymId = asymId;
71
+ }
72
+ else if (currAsymId !== asymId) {
73
+ atomIdCounts.clear();
74
+ currAsymId = asymId;
75
+ currSeqId = seqId;
76
+ asymIdChanged = true;
77
+ currLabelAsymId = asymId;
78
+ }
79
+ else if (currSeqId !== seqId) {
80
+ atomIdCounts.clear();
81
+ currSeqId = seqId;
82
+ }
83
+ if (asymIdCounts.has(asymId)) {
84
+ // only change the chains name if there are TER records
85
+ // otherwise assume repeated chain name use is from interleaved chains
86
+ if (hasTer && asymIdChanged) {
87
+ var asymIdCount = asymIdCounts.get(asymId) + 1;
88
+ asymIdCounts.set(asymId, asymIdCount);
89
+ currLabelAsymId = "".concat(asymId, "_").concat(asymIdCount);
90
+ }
91
+ }
92
+ else {
93
+ asymIdCounts.set(asymId, 0);
94
+ }
95
+ labelAsymIds[i] = currLabelAsymId;
96
+ if (atomIdCounts.has(atomId)) {
97
+ var atomIdCount = atomIdCounts.get(atomId) + 1;
98
+ atomIdCounts.set(atomId, atomIdCount);
99
+ atomId = "".concat(atomId, "_").concat(atomIdCount);
100
+ }
101
+ else {
102
+ atomIdCounts.set(atomId, 0);
103
+ }
104
+ labelAtomIds[i] = atomId;
105
+ }
106
+ var labelAsymId = db_1.Column.ofStringArray(labelAsymIds);
107
+ var labelAtomId = db_1.Column.ofStringArray(labelAtomIds);
108
+ //
44
109
  return {
45
110
  auth_asym_id: auth_asym_id,
46
111
  auth_atom_id: auth_atom_id,
47
112
  auth_comp_id: auth_comp_id,
48
- auth_seq_id: cif_1.CifField.ofTokens(sites.auth_seq_id),
113
+ auth_seq_id: auth_seq_id,
49
114
  B_iso_or_equiv: cif_1.CifField.ofTokens(sites.B_iso_or_equiv),
50
115
  Cartn_x: cif_1.CifField.ofTokens(sites.Cartn_x),
51
116
  Cartn_y: cif_1.CifField.ofTokens(sites.Cartn_y),
52
117
  Cartn_z: cif_1.CifField.ofTokens(sites.Cartn_z),
53
118
  group_PDB: cif_1.CifField.ofTokens(sites.group_PDB),
54
- id: cif_1.CifField.ofStrings(sites.id),
119
+ id: id,
55
120
  label_alt_id: cif_1.CifField.ofTokens(sites.label_alt_id),
56
- label_asym_id: auth_asym_id,
57
- label_atom_id: auth_atom_id,
121
+ label_asym_id: cif_1.CifField.ofColumn(labelAsymId),
122
+ label_atom_id: cif_1.CifField.ofColumn(labelAtomId),
58
123
  label_comp_id: auth_comp_id,
59
124
  label_seq_id: cif_1.CifField.ofUndefined(sites.index, db_1.Column.Schema.int),
60
125
  label_entity_id: cif_1.CifField.ofStrings(sites.label_entity_id),
61
126
  occupancy: (0, token_1.areTokensEmpty)(sites.occupancy) ? cif_1.CifField.ofUndefined(sites.index, db_1.Column.Schema.float) : cif_1.CifField.ofTokens(sites.occupancy),
62
127
  type_symbol: cif_1.CifField.ofTokens(sites.type_symbol),
63
128
  pdbx_PDB_ins_code: cif_1.CifField.ofTokens(sites.pdbx_PDB_ins_code),
64
- pdbx_PDB_model_num: cif_1.CifField.ofStrings(sites.pdbx_PDB_model_num),
129
+ pdbx_PDB_model_num: pdbx_PDB_model_num,
65
130
  partial_charge: cif_1.CifField.ofTokens(sites.partial_charge)
66
131
  };
67
132
  }
@@ -22,19 +22,19 @@ var HelixTypes = {
22
22
  // Left-handed gamma 8
23
23
  // 2 - 7 ribbon/helix 9
24
24
  // Polyproline 10
25
- 1: 'HELX_RH_AL_P',
26
- 2: 'HELX_RH_OM_P',
27
- 3: 'HELX_RH_PI_P',
28
- 4: 'HELX_RH_GA_P',
29
- 5: 'HELX_RH_3T_P',
30
- 6: 'HELX_LH_AL_P',
31
- 7: 'HELX_LH_OM_P',
32
- 8: 'HELX_LH_GA_P',
33
- 9: 'HELX_RH_27_P',
34
- 10: 'HELX_RH_PP_P', // TODO or left-handed???
25
+ 1: 'helx_rh_al_p',
26
+ 2: 'helx_rh_om_p',
27
+ 3: 'helx_rh_pi_p',
28
+ 4: 'helx_rh_ga_p',
29
+ 5: 'helx_rh_3t_p',
30
+ 6: 'helx_lh_al_p',
31
+ 7: 'helx_lh_om_p',
32
+ 8: 'helx_lh_ga_p',
33
+ 9: 'helx_rh_27_p',
34
+ 10: 'helx_rh_pp_p', // TODO or left-handed???
35
35
  };
36
36
  function getStructConfTypeId(type) {
37
- return HelixTypes[type] || 'HELX_P';
37
+ return HelixTypes[type] || 'helx_p';
38
38
  }
39
39
  function parseHelix(lines, lineStart, lineEnd) {
40
40
  var helices = [];
@@ -24,7 +24,7 @@ var conect_1 = require("./conect");
24
24
  var debug_1 = require("../../../mol-util/debug");
25
25
  function pdbToMmCif(pdb) {
26
26
  return tslib_1.__awaiter(this, void 0, void 0, function () {
27
- var lines, data, indices, tokenizer, isPdbqt, atomCount, anisotropicCount, i, _i, s, e, atomSite, anisotropic, entityBuilder, helperCategories, heteroNames, modelNum, modelStr, conectRange, i, _i, s, e, j, j, j, j, j, j, j, seqIds, atomIds, compIds, asymIds, componentBuilder, i, il, compId, moleculeType, atom_site, categories, _a, helperCategories_1, c;
27
+ var lines, data, indices, tokenizer, isPdbqt, atomCount, anisotropicCount, i, _i, s, e, atomSite, anisotropic, entityBuilder, helperCategories, heteroNames, modelNum, modelStr, conectRange, hasTer, i, _i, s, e, j, j, j, j, j, j, j, seqIds, atomIds, compIds, asymIds, componentBuilder, i, il, compId, moleculeType, atom_site, categories, _a, helperCategories_1, c;
28
28
  return tslib_1.__generator(this, function (_b) {
29
29
  lines = pdb.lines;
30
30
  data = lines.data, indices = lines.indices;
@@ -54,6 +54,7 @@ function pdbToMmCif(pdb) {
54
54
  heteroNames = [];
55
55
  modelNum = 0, modelStr = '';
56
56
  conectRange = undefined;
57
+ hasTer = false;
57
58
  for (i = 0, _i = lines.count; i < _i; i++) {
58
59
  s = indices[2 * i], e = indices[2 * i + 1];
59
60
  switch (data[s]) {
@@ -189,6 +190,10 @@ function pdbToMmCif(pdb) {
189
190
  }
190
191
  // TODO: SCALE record => cif.atom_sites.fract_transf_matrix, cif.atom_sites.fract_transf_vector
191
192
  break;
193
+ case 'T':
194
+ if ((0, string_1.substringStartsWith)(data, s, e, 'TER')) {
195
+ hasTer = true;
196
+ }
192
197
  }
193
198
  }
194
199
  seqIds = db_1.Column.ofIntTokens(atomSite.auth_seq_id);
@@ -203,7 +208,7 @@ function pdbToMmCif(pdb) {
203
208
  moleculeType = (0, types_1.getMoleculeType)(componentBuilder.add(compId, i).type, compId);
204
209
  atomSite.label_entity_id[i] = entityBuilder.getEntityId(compId, moleculeType, asymIds.value(i));
205
210
  }
206
- atom_site = (0, atom_site_1.getAtomSite)(atomSite);
211
+ atom_site = (0, atom_site_1.getAtomSite)(atomSite, hasTer);
207
212
  if (!isPdbqt)
208
213
  delete atom_site.partial_charge;
209
214
  if (conectRange) {