@datagrok-libraries/bio 6.0.3 → 6.0.6

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 (603) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/CHANGELOG.md +4 -0
  3. package/CLAUDE.md +1 -1
  4. package/LICENSE.md +16 -0
  5. package/cleanup +0 -0
  6. package/dist/src/aminoacids.d.ts.map +1 -0
  7. package/dist/src/aminoacids.js.map +1 -0
  8. package/dist/src/chem/rdkit-module.d.ts.map +1 -0
  9. package/dist/src/chem/rdkit-module.js.map +1 -0
  10. package/dist/src/consts/index.d.ts.map +1 -0
  11. package/dist/src/consts/index.js.map +1 -0
  12. package/dist/src/helm/consts.d.ts.map +1 -0
  13. package/dist/src/helm/consts.js.map +1 -0
  14. package/dist/src/helm/helm-helper.d.ts.map +1 -0
  15. package/dist/src/helm/helm-helper.js.map +1 -0
  16. package/dist/src/helm/types.d.ts.map +1 -0
  17. package/dist/src/helm/types.js.map +1 -0
  18. package/dist/src/helm/utils.d.ts.map +1 -0
  19. package/dist/src/helm/utils.js.map +1 -0
  20. package/dist/src/molecule/molecule-build-data.d.ts.map +1 -0
  21. package/dist/src/molecule/molecule-build-data.js.map +1 -0
  22. package/dist/src/molecule/molecule-units-handler.d.ts.map +1 -0
  23. package/dist/src/molecule/molecule-units-handler.js.map +1 -0
  24. package/dist/src/molecule/types.d.ts.map +1 -0
  25. package/dist/src/molecule/types.js.map +1 -0
  26. package/dist/src/molecule-3d/index.d.ts.map +1 -0
  27. package/dist/src/molecule-3d/index.js.map +1 -0
  28. package/dist/src/molecule-3d/molecule-3d-build-data.d.ts.map +1 -0
  29. package/dist/src/molecule-3d/molecule-3d-build-data.js.map +1 -0
  30. package/dist/src/molecule-3d/molecule-3d-units-handler.d.ts.map +1 -0
  31. package/dist/src/molecule-3d/molecule-3d-units-handler.js.map +1 -0
  32. package/dist/src/molecule-3d/types.d.ts.map +1 -0
  33. package/dist/src/molecule-3d/types.js.map +1 -0
  34. package/dist/src/monomer-works/consts.d.ts +36 -0
  35. package/dist/src/monomer-works/consts.d.ts.map +1 -0
  36. package/dist/src/monomer-works/consts.js.map +1 -0
  37. package/dist/src/monomer-works/lib-events.d.ts +11 -0
  38. package/dist/src/monomer-works/lib-events.d.ts.map +1 -0
  39. package/dist/src/monomer-works/lib-events.js +13 -0
  40. package/dist/src/monomer-works/lib-events.js.map +1 -0
  41. package/dist/src/monomer-works/lib-settings.d.ts.map +1 -0
  42. package/dist/src/monomer-works/lib-settings.js.map +1 -0
  43. package/dist/src/monomer-works/monomer-hover.d.ts.map +1 -0
  44. package/dist/src/monomer-works/monomer-hover.js.map +1 -0
  45. package/dist/src/monomer-works/monomer-utils.d.ts.map +1 -0
  46. package/{src → dist/src}/monomer-works/monomer-utils.js +4 -17
  47. package/dist/src/monomer-works/monomer-utils.js.map +1 -0
  48. package/dist/src/monomer-works/monomer-works.d.ts.map +1 -0
  49. package/dist/src/monomer-works/monomer-works.js.map +1 -0
  50. package/dist/src/monomer-works/seq-to-molfile-worker.d.ts.map +1 -0
  51. package/dist/src/monomer-works/seq-to-molfile-worker.js.map +1 -0
  52. package/dist/src/monomer-works/seq-to-molfile.d.ts.map +1 -0
  53. package/dist/src/monomer-works/seq-to-molfile.js.map +1 -0
  54. package/dist/src/monomer-works/to-atomic-level-utils.d.ts.map +1 -0
  55. package/dist/src/monomer-works/to-atomic-level-utils.js.map +1 -0
  56. package/dist/src/monomer-works/to-atomic-level.d.ts.map +1 -0
  57. package/dist/src/monomer-works/to-atomic-level.js.map +1 -0
  58. package/dist/src/monomer-works/types.d.ts.map +1 -0
  59. package/dist/src/monomer-works/types.js.map +1 -0
  60. package/dist/src/monomer-works/utils.d.ts.map +1 -0
  61. package/dist/src/monomer-works/utils.js.map +1 -0
  62. package/dist/src/ntseq/ntseq.js +1349 -0
  63. package/dist/src/nucleotides.d.ts.map +1 -0
  64. package/dist/src/nucleotides.js.map +1 -0
  65. package/dist/src/pdb/auto-dock-service.d.ts.map +1 -0
  66. package/dist/src/pdb/auto-dock-service.js.map +1 -0
  67. package/dist/src/pdb/format/types-base.d.ts.map +1 -0
  68. package/dist/src/pdb/format/types-base.js.map +1 -0
  69. package/dist/src/pdb/format/types-pdb.d.ts.map +1 -0
  70. package/dist/src/pdb/format/types-pdb.js.map +1 -0
  71. package/dist/src/pdb/format/types-pdbqt.d.ts.map +1 -0
  72. package/dist/src/pdb/format/types-pdbqt.js.map +1 -0
  73. package/dist/src/pdb/format/types.d.ts.map +1 -0
  74. package/dist/src/pdb/format/types.js.map +1 -0
  75. package/dist/src/pdb/index.d.ts.map +1 -0
  76. package/dist/src/pdb/index.js.map +1 -0
  77. package/dist/src/pdb/pdb-helper.d.ts.map +1 -0
  78. package/dist/src/pdb/pdb-helper.js.map +1 -0
  79. package/dist/src/pdb/types.d.ts.map +1 -0
  80. package/dist/src/pdb/types.js.map +1 -0
  81. package/dist/src/seq-palettes.d.ts.map +1 -0
  82. package/dist/src/seq-palettes.js.map +1 -0
  83. package/dist/src/sequence-encoder.d.ts.map +1 -0
  84. package/dist/src/sequence-encoder.js.map +1 -0
  85. package/dist/src/substructure-filter/bio-substructure-filter-types.d.ts.map +1 -0
  86. package/dist/src/substructure-filter/bio-substructure-filter-types.js.map +1 -0
  87. package/dist/src/tests/monomer-lib-tests.d.ts.map +1 -0
  88. package/dist/src/tests/monomer-lib-tests.js.map +1 -0
  89. package/dist/src/tests/palettes-tests.d.ts.map +1 -0
  90. package/dist/src/tests/palettes-tests.js.map +1 -0
  91. package/dist/src/trees/consts.d.ts.map +1 -0
  92. package/dist/src/trees/consts.js.map +1 -0
  93. package/dist/src/trees/dendrogram.d.ts.map +1 -0
  94. package/dist/src/trees/dendrogram.js.map +1 -0
  95. package/dist/src/trees/index.d.ts.map +1 -0
  96. package/dist/src/trees/index.js.map +1 -0
  97. package/dist/src/trees/phylocanvas.d.ts.map +1 -0
  98. package/dist/src/trees/phylocanvas.js.map +1 -0
  99. package/dist/src/trees/tree-helper.d.ts.map +1 -0
  100. package/dist/src/trees/tree-helper.js.map +1 -0
  101. package/dist/src/trees/types.d.ts.map +1 -0
  102. package/dist/src/trees/types.js.map +1 -0
  103. package/dist/src/trees/utils.d.ts.map +1 -0
  104. package/dist/src/trees/utils.js.map +1 -0
  105. package/dist/src/types/dojo.d.ts.map +1 -0
  106. package/dist/src/types/dojo.js.map +1 -0
  107. package/dist/src/types/index.d.ts.map +1 -0
  108. package/dist/src/types/index.js.map +1 -0
  109. package/dist/src/types/input.d.ts.map +1 -0
  110. package/dist/src/types/input.js.map +1 -0
  111. package/dist/src/types/monomer-library.d.ts.map +1 -0
  112. package/dist/src/types/monomer-library.js.map +1 -0
  113. package/dist/src/types/ngl.d.ts.map +1 -0
  114. package/dist/src/types/ngl.js.map +1 -0
  115. package/dist/src/types/renderer.d.ts.map +1 -0
  116. package/dist/src/types/renderer.js.map +1 -0
  117. package/dist/src/unknown.d.ts.map +1 -0
  118. package/dist/src/unknown.js.map +1 -0
  119. package/dist/src/utils/annotation-track.d.ts.map +1 -0
  120. package/dist/src/utils/annotation-track.js.map +1 -0
  121. package/dist/src/utils/cell-renderer-annotations.d.ts.map +1 -0
  122. package/dist/src/utils/cell-renderer-annotations.js.map +1 -0
  123. package/dist/src/utils/cell-renderer-async-base.d.ts.map +1 -0
  124. package/dist/src/utils/cell-renderer-async-base.js.map +1 -0
  125. package/dist/src/utils/cell-renderer-back-base.d.ts.map +1 -0
  126. package/dist/src/utils/cell-renderer-back-base.js.map +1 -0
  127. package/dist/src/utils/cell-renderer-consts.d.ts.map +1 -0
  128. package/dist/src/utils/cell-renderer-consts.js +28 -0
  129. package/dist/src/utils/cell-renderer-consts.js.map +1 -0
  130. package/dist/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -0
  131. package/dist/src/utils/cell-renderer-monomer-placer.js.map +1 -0
  132. package/dist/src/utils/cell-renderer.d.ts.map +1 -0
  133. package/dist/src/utils/cell-renderer.js.map +1 -0
  134. package/dist/src/utils/composition-table.d.ts.map +1 -0
  135. package/dist/src/utils/composition-table.js.map +1 -0
  136. package/{src → dist/src}/utils/const.d.ts +6 -6
  137. package/dist/src/utils/const.d.ts.map +1 -0
  138. package/dist/src/utils/const.js +97 -0
  139. package/dist/src/utils/const.js.map +1 -0
  140. package/dist/src/utils/data-provider.d.ts.map +1 -0
  141. package/dist/src/utils/data-provider.js.map +1 -0
  142. package/dist/src/utils/docker.d.ts.map +1 -0
  143. package/dist/src/utils/docker.js.map +1 -0
  144. package/dist/src/utils/err-info.d.ts.map +1 -0
  145. package/dist/src/utils/err-info.js.map +1 -0
  146. package/dist/src/utils/fasta-handler.d.ts.map +1 -0
  147. package/dist/src/utils/fasta-handler.js.map +1 -0
  148. package/dist/src/utils/generator.d.ts.map +1 -0
  149. package/dist/src/utils/generator.js.map +1 -0
  150. package/dist/src/utils/logger.d.ts.map +1 -0
  151. package/dist/src/utils/logger.js.map +1 -0
  152. package/dist/src/utils/macromolecule/alignment.d.ts.map +1 -0
  153. package/dist/src/utils/macromolecule/alignment.js.map +1 -0
  154. package/{src → dist/src}/utils/macromolecule/annotations.d.ts +7 -7
  155. package/dist/src/utils/macromolecule/annotations.d.ts.map +1 -0
  156. package/dist/src/utils/macromolecule/annotations.js.map +1 -0
  157. package/dist/src/utils/macromolecule/consts.d.ts.map +1 -0
  158. package/{src → dist/src}/utils/macromolecule/consts.js +5 -0
  159. package/dist/src/utils/macromolecule/consts.js.map +1 -0
  160. package/dist/src/utils/macromolecule/index.d.ts.map +1 -0
  161. package/{src → dist/src}/utils/macromolecule/index.js +1 -1
  162. package/dist/src/utils/macromolecule/index.js.map +1 -0
  163. package/dist/src/utils/macromolecule/monomers.d.ts.map +1 -0
  164. package/dist/src/utils/macromolecule/monomers.js.map +1 -0
  165. package/dist/src/utils/macromolecule/numbering-schemes.d.ts.map +1 -0
  166. package/dist/src/utils/macromolecule/numbering-schemes.js.map +1 -0
  167. package/dist/src/utils/macromolecule/scoring.d.ts.map +1 -0
  168. package/dist/src/utils/macromolecule/scoring.js.map +1 -0
  169. package/dist/src/utils/macromolecule/seq-handler.d.ts.map +1 -0
  170. package/dist/src/utils/macromolecule/seq-handler.js.map +1 -0
  171. package/dist/src/utils/macromolecule/types.d.ts.map +1 -0
  172. package/dist/src/utils/macromolecule/types.js.map +1 -0
  173. package/dist/src/utils/macromolecule/utils.d.ts.map +1 -0
  174. package/dist/src/utils/macromolecule/utils.js.map +1 -0
  175. package/dist/src/utils/macromolecule-highlight.d.ts.map +1 -0
  176. package/dist/src/utils/macromolecule-highlight.js.map +1 -0
  177. package/dist/src/utils/monomer-selection-dialog.d.ts.map +1 -0
  178. package/dist/src/utils/monomer-selection-dialog.js.map +1 -0
  179. package/dist/src/utils/monomer-ui.d.ts.map +1 -0
  180. package/dist/src/utils/monomer-ui.js.map +1 -0
  181. package/dist/src/utils/seq-helper.d.ts.map +1 -0
  182. package/dist/src/utils/seq-helper.js.map +1 -0
  183. package/dist/src/utils/sequence-column-input.d.ts.map +1 -0
  184. package/dist/src/utils/sequence-column-input.js.map +1 -0
  185. package/{src → dist/src}/utils/sequence-position-scroller.d.ts +20 -0
  186. package/dist/src/utils/sequence-position-scroller.d.ts.map +1 -0
  187. package/{src → dist/src}/utils/sequence-position-scroller.js +124 -23
  188. package/dist/src/utils/sequence-position-scroller.js.map +1 -0
  189. package/dist/src/utils/splitter.d.ts.map +1 -0
  190. package/dist/src/utils/splitter.js.map +1 -0
  191. package/dist/src/utils/syncer.d.ts.map +1 -0
  192. package/dist/src/utils/syncer.js.map +1 -0
  193. package/dist/src/utils/units-handler-base.d.ts.map +1 -0
  194. package/dist/src/utils/units-handler-base.js.map +1 -0
  195. package/dist/src/utils.d.ts.map +1 -0
  196. package/dist/src/utils.js.map +1 -0
  197. package/dist/src/viewers/biotrack.d.ts.map +1 -0
  198. package/dist/src/viewers/biotrack.js.map +1 -0
  199. package/dist/src/viewers/helm-service.d.ts.map +1 -0
  200. package/dist/src/viewers/helm-service.js.map +1 -0
  201. package/dist/src/viewers/molecule3d.d.ts.map +1 -0
  202. package/dist/src/viewers/molecule3d.js.map +1 -0
  203. package/dist/src/viewers/molstar-viewer.d.ts.map +1 -0
  204. package/dist/src/viewers/molstar-viewer.js.map +1 -0
  205. package/dist/src/viewers/ngl-gl-service.d.ts.map +1 -0
  206. package/dist/src/viewers/ngl-gl-service.js.map +1 -0
  207. package/dist/src/viewers/ngl-gl-viewer.d.ts.map +1 -0
  208. package/dist/src/viewers/ngl-gl-viewer.js.map +1 -0
  209. package/dist/src/viewers/phylocanvas-gl-viewer.d.ts.map +1 -0
  210. package/dist/src/viewers/phylocanvas-gl-viewer.js.map +1 -0
  211. package/dist/src/viewers/vd-regions.d.ts.map +1 -0
  212. package/dist/src/viewers/vd-regions.js.map +1 -0
  213. package/dist/src/viewers/viewer.d.ts.map +1 -0
  214. package/dist/src/viewers/viewer.js.map +1 -0
  215. package/dist/src/viewers/web-logo.d.ts.map +1 -0
  216. package/dist/src/viewers/web-logo.js.map +1 -0
  217. package/package.json +55 -32
  218. package/tsconfig.json +2 -67
  219. package/src/aminoacids.d.ts.map +0 -1
  220. package/src/aminoacids.js.map +0 -1
  221. package/src/chem/rdkit-module.d.ts.map +0 -1
  222. package/src/chem/rdkit-module.js.map +0 -1
  223. package/src/consts/index.d.ts.map +0 -1
  224. package/src/consts/index.js.map +0 -1
  225. package/src/helm/consts.d.ts.map +0 -1
  226. package/src/helm/consts.js.map +0 -1
  227. package/src/helm/helm-helper.d.ts.map +0 -1
  228. package/src/helm/helm-helper.js.map +0 -1
  229. package/src/helm/types.d.ts.map +0 -1
  230. package/src/helm/types.js.map +0 -1
  231. package/src/helm/utils.d.ts.map +0 -1
  232. package/src/helm/utils.js.map +0 -1
  233. package/src/molecule/molecule-build-data.d.ts.map +0 -1
  234. package/src/molecule/molecule-build-data.js.map +0 -1
  235. package/src/molecule/molecule-units-handler.d.ts.map +0 -1
  236. package/src/molecule/molecule-units-handler.js.map +0 -1
  237. package/src/molecule/types.d.ts.map +0 -1
  238. package/src/molecule/types.js.map +0 -1
  239. package/src/molecule-3d/index.d.ts.map +0 -1
  240. package/src/molecule-3d/index.js.map +0 -1
  241. package/src/molecule-3d/molecule-3d-build-data.d.ts.map +0 -1
  242. package/src/molecule-3d/molecule-3d-build-data.js.map +0 -1
  243. package/src/molecule-3d/molecule-3d-units-handler.d.ts.map +0 -1
  244. package/src/molecule-3d/molecule-3d-units-handler.js.map +0 -1
  245. package/src/molecule-3d/types.d.ts.map +0 -1
  246. package/src/molecule-3d/types.js.map +0 -1
  247. package/src/monomer-works/consts.d.ts +0 -36
  248. package/src/monomer-works/consts.d.ts.map +0 -1
  249. package/src/monomer-works/consts.js.map +0 -1
  250. package/src/monomer-works/lib-settings.d.ts.map +0 -1
  251. package/src/monomer-works/lib-settings.js.map +0 -1
  252. package/src/monomer-works/monomer-hover.d.ts.map +0 -1
  253. package/src/monomer-works/monomer-hover.js.map +0 -1
  254. package/src/monomer-works/monomer-utils.d.ts.map +0 -1
  255. package/src/monomer-works/monomer-utils.js.map +0 -1
  256. package/src/monomer-works/monomer-works.d.ts.map +0 -1
  257. package/src/monomer-works/monomer-works.js.map +0 -1
  258. package/src/monomer-works/seq-to-molfile-worker.d.ts.map +0 -1
  259. package/src/monomer-works/seq-to-molfile-worker.js.map +0 -1
  260. package/src/monomer-works/seq-to-molfile.d.ts.map +0 -1
  261. package/src/monomer-works/seq-to-molfile.js.map +0 -1
  262. package/src/monomer-works/to-atomic-level-utils.d.ts.map +0 -1
  263. package/src/monomer-works/to-atomic-level-utils.js.map +0 -1
  264. package/src/monomer-works/to-atomic-level.d.ts.map +0 -1
  265. package/src/monomer-works/to-atomic-level.js.map +0 -1
  266. package/src/monomer-works/types.d.ts.map +0 -1
  267. package/src/monomer-works/types.js.map +0 -1
  268. package/src/monomer-works/utils.d.ts.map +0 -1
  269. package/src/monomer-works/utils.js.map +0 -1
  270. package/src/nucleotides.d.ts.map +0 -1
  271. package/src/nucleotides.js.map +0 -1
  272. package/src/pdb/auto-dock-service.d.ts.map +0 -1
  273. package/src/pdb/auto-dock-service.js.map +0 -1
  274. package/src/pdb/format/types-base.d.ts.map +0 -1
  275. package/src/pdb/format/types-base.js.map +0 -1
  276. package/src/pdb/format/types-pdb.d.ts.map +0 -1
  277. package/src/pdb/format/types-pdb.js.map +0 -1
  278. package/src/pdb/format/types-pdbqt.d.ts.map +0 -1
  279. package/src/pdb/format/types-pdbqt.js.map +0 -1
  280. package/src/pdb/format/types.d.ts.map +0 -1
  281. package/src/pdb/format/types.js.map +0 -1
  282. package/src/pdb/index.d.ts.map +0 -1
  283. package/src/pdb/index.js.map +0 -1
  284. package/src/pdb/pdb-helper.d.ts.map +0 -1
  285. package/src/pdb/pdb-helper.js.map +0 -1
  286. package/src/pdb/types.d.ts.map +0 -1
  287. package/src/pdb/types.js.map +0 -1
  288. package/src/seq-palettes.d.ts.map +0 -1
  289. package/src/seq-palettes.js.map +0 -1
  290. package/src/sequence-encoder.d.ts.map +0 -1
  291. package/src/sequence-encoder.js.map +0 -1
  292. package/src/substructure-filter/bio-substructure-filter-types.d.ts.map +0 -1
  293. package/src/substructure-filter/bio-substructure-filter-types.js.map +0 -1
  294. package/src/tests/monomer-lib-tests.d.ts.map +0 -1
  295. package/src/tests/monomer-lib-tests.js.map +0 -1
  296. package/src/tests/palettes-tests.d.ts.map +0 -1
  297. package/src/tests/palettes-tests.js.map +0 -1
  298. package/src/trees/consts.d.ts.map +0 -1
  299. package/src/trees/consts.js.map +0 -1
  300. package/src/trees/dendrogram.d.ts.map +0 -1
  301. package/src/trees/dendrogram.js.map +0 -1
  302. package/src/trees/index.d.ts.map +0 -1
  303. package/src/trees/index.js.map +0 -1
  304. package/src/trees/phylocanvas.d.ts.map +0 -1
  305. package/src/trees/phylocanvas.js.map +0 -1
  306. package/src/trees/tree-helper.d.ts.map +0 -1
  307. package/src/trees/tree-helper.js.map +0 -1
  308. package/src/trees/types.d.ts.map +0 -1
  309. package/src/trees/types.js.map +0 -1
  310. package/src/trees/utils.d.ts.map +0 -1
  311. package/src/trees/utils.js.map +0 -1
  312. package/src/types/dojo.d.ts.map +0 -1
  313. package/src/types/dojo.js.map +0 -1
  314. package/src/types/index.d.ts.map +0 -1
  315. package/src/types/index.js.map +0 -1
  316. package/src/types/input.d.ts.map +0 -1
  317. package/src/types/input.js.map +0 -1
  318. package/src/types/monomer-library.d.ts.map +0 -1
  319. package/src/types/monomer-library.js.map +0 -1
  320. package/src/types/ngl.d.ts.map +0 -1
  321. package/src/types/ngl.js.map +0 -1
  322. package/src/types/renderer.d.ts.map +0 -1
  323. package/src/types/renderer.js.map +0 -1
  324. package/src/unknown.d.ts.map +0 -1
  325. package/src/unknown.js.map +0 -1
  326. package/src/utils/annotation-track.d.ts.map +0 -1
  327. package/src/utils/annotation-track.js.map +0 -1
  328. package/src/utils/cell-renderer-annotations.d.ts.map +0 -1
  329. package/src/utils/cell-renderer-annotations.js.map +0 -1
  330. package/src/utils/cell-renderer-async-base.d.ts.map +0 -1
  331. package/src/utils/cell-renderer-async-base.js.map +0 -1
  332. package/src/utils/cell-renderer-back-base.d.ts.map +0 -1
  333. package/src/utils/cell-renderer-back-base.js.map +0 -1
  334. package/src/utils/cell-renderer-consts.d.ts.map +0 -1
  335. package/src/utils/cell-renderer-consts.js +0 -10
  336. package/src/utils/cell-renderer-consts.js.map +0 -1
  337. package/src/utils/cell-renderer-monomer-placer.d.ts.map +0 -1
  338. package/src/utils/cell-renderer-monomer-placer.js.map +0 -1
  339. package/src/utils/cell-renderer.d.ts.map +0 -1
  340. package/src/utils/cell-renderer.js.map +0 -1
  341. package/src/utils/composition-table.d.ts.map +0 -1
  342. package/src/utils/composition-table.js.map +0 -1
  343. package/src/utils/const.d.ts.map +0 -1
  344. package/src/utils/const.js +0 -52
  345. package/src/utils/const.js.map +0 -1
  346. package/src/utils/data-provider.d.ts.map +0 -1
  347. package/src/utils/data-provider.js.map +0 -1
  348. package/src/utils/docker.d.ts.map +0 -1
  349. package/src/utils/docker.js.map +0 -1
  350. package/src/utils/err-info.d.ts.map +0 -1
  351. package/src/utils/err-info.js.map +0 -1
  352. package/src/utils/fasta-handler.d.ts.map +0 -1
  353. package/src/utils/fasta-handler.js.map +0 -1
  354. package/src/utils/generator.d.ts.map +0 -1
  355. package/src/utils/generator.js.map +0 -1
  356. package/src/utils/logger.d.ts.map +0 -1
  357. package/src/utils/logger.js.map +0 -1
  358. package/src/utils/macromolecule/alignment.d.ts.map +0 -1
  359. package/src/utils/macromolecule/alignment.js.map +0 -1
  360. package/src/utils/macromolecule/annotations.d.ts.map +0 -1
  361. package/src/utils/macromolecule/annotations.js.map +0 -1
  362. package/src/utils/macromolecule/consts.d.ts.map +0 -1
  363. package/src/utils/macromolecule/consts.js.map +0 -1
  364. package/src/utils/macromolecule/index.d.ts.map +0 -1
  365. package/src/utils/macromolecule/index.js.map +0 -1
  366. package/src/utils/macromolecule/monomers.d.ts.map +0 -1
  367. package/src/utils/macromolecule/monomers.js.map +0 -1
  368. package/src/utils/macromolecule/numbering-schemes.d.ts.map +0 -1
  369. package/src/utils/macromolecule/numbering-schemes.js.map +0 -1
  370. package/src/utils/macromolecule/scoring.d.ts.map +0 -1
  371. package/src/utils/macromolecule/scoring.js.map +0 -1
  372. package/src/utils/macromolecule/seq-handler.d.ts.map +0 -1
  373. package/src/utils/macromolecule/seq-handler.js.map +0 -1
  374. package/src/utils/macromolecule/types.d.ts.map +0 -1
  375. package/src/utils/macromolecule/types.js.map +0 -1
  376. package/src/utils/macromolecule/utils.d.ts.map +0 -1
  377. package/src/utils/macromolecule/utils.js.map +0 -1
  378. package/src/utils/macromolecule-highlight.d.ts.map +0 -1
  379. package/src/utils/macromolecule-highlight.js.map +0 -1
  380. package/src/utils/monomer-selection-dialog.d.ts.map +0 -1
  381. package/src/utils/monomer-selection-dialog.js.map +0 -1
  382. package/src/utils/monomer-ui.d.ts.map +0 -1
  383. package/src/utils/monomer-ui.js.map +0 -1
  384. package/src/utils/seq-helper.d.ts.map +0 -1
  385. package/src/utils/seq-helper.js.map +0 -1
  386. package/src/utils/sequence-column-input.d.ts.map +0 -1
  387. package/src/utils/sequence-column-input.js.map +0 -1
  388. package/src/utils/sequence-position-scroller.d.ts.map +0 -1
  389. package/src/utils/sequence-position-scroller.js.map +0 -1
  390. package/src/utils/splitter.d.ts.map +0 -1
  391. package/src/utils/splitter.js.map +0 -1
  392. package/src/utils/syncer.d.ts.map +0 -1
  393. package/src/utils/syncer.js.map +0 -1
  394. package/src/utils/units-handler-base.d.ts.map +0 -1
  395. package/src/utils/units-handler-base.js.map +0 -1
  396. package/src/utils.d.ts.map +0 -1
  397. package/src/utils.js.map +0 -1
  398. package/src/viewers/biotrack.d.ts.map +0 -1
  399. package/src/viewers/biotrack.js.map +0 -1
  400. package/src/viewers/helm-service.d.ts.map +0 -1
  401. package/src/viewers/helm-service.js.map +0 -1
  402. package/src/viewers/molecule3d.d.ts.map +0 -1
  403. package/src/viewers/molecule3d.js.map +0 -1
  404. package/src/viewers/molstar-viewer.d.ts.map +0 -1
  405. package/src/viewers/molstar-viewer.js.map +0 -1
  406. package/src/viewers/ngl-gl-service.d.ts.map +0 -1
  407. package/src/viewers/ngl-gl-service.js.map +0 -1
  408. package/src/viewers/ngl-gl-viewer.d.ts.map +0 -1
  409. package/src/viewers/ngl-gl-viewer.js.map +0 -1
  410. package/src/viewers/phylocanvas-gl-viewer.d.ts.map +0 -1
  411. package/src/viewers/phylocanvas-gl-viewer.js.map +0 -1
  412. package/src/viewers/vd-regions.d.ts.map +0 -1
  413. package/src/viewers/vd-regions.js.map +0 -1
  414. package/src/viewers/viewer.d.ts.map +0 -1
  415. package/src/viewers/viewer.js.map +0 -1
  416. package/src/viewers/web-logo.d.ts.map +0 -1
  417. package/src/viewers/web-logo.js.map +0 -1
  418. /package/{src → dist/src}/aminoacids.d.ts +0 -0
  419. /package/{src → dist/src}/aminoacids.js +0 -0
  420. /package/{src → dist/src}/chem/rdkit-module.d.ts +0 -0
  421. /package/{src → dist/src}/chem/rdkit-module.js +0 -0
  422. /package/{src → dist/src}/consts/index.d.ts +0 -0
  423. /package/{src → dist/src}/consts/index.js +0 -0
  424. /package/{src → dist/src}/helm/consts.d.ts +0 -0
  425. /package/{src → dist/src}/helm/consts.js +0 -0
  426. /package/{src → dist/src}/helm/helm-helper.d.ts +0 -0
  427. /package/{src → dist/src}/helm/helm-helper.js +0 -0
  428. /package/{src → dist/src}/helm/types.d.ts +0 -0
  429. /package/{src → dist/src}/helm/types.js +0 -0
  430. /package/{src → dist/src}/helm/utils.d.ts +0 -0
  431. /package/{src → dist/src}/helm/utils.js +0 -0
  432. /package/{src → dist/src}/molecule/molecule-build-data.d.ts +0 -0
  433. /package/{src → dist/src}/molecule/molecule-build-data.js +0 -0
  434. /package/{src → dist/src}/molecule/molecule-units-handler.d.ts +0 -0
  435. /package/{src → dist/src}/molecule/molecule-units-handler.js +0 -0
  436. /package/{src → dist/src}/molecule/types.d.ts +0 -0
  437. /package/{src → dist/src}/molecule/types.js +0 -0
  438. /package/{src → dist/src}/molecule-3d/index.d.ts +0 -0
  439. /package/{src → dist/src}/molecule-3d/index.js +0 -0
  440. /package/{src → dist/src}/molecule-3d/molecule-3d-build-data.d.ts +0 -0
  441. /package/{src → dist/src}/molecule-3d/molecule-3d-build-data.js +0 -0
  442. /package/{src → dist/src}/molecule-3d/molecule-3d-units-handler.d.ts +0 -0
  443. /package/{src → dist/src}/molecule-3d/molecule-3d-units-handler.js +0 -0
  444. /package/{src → dist/src}/molecule-3d/types.d.ts +0 -0
  445. /package/{src → dist/src}/molecule-3d/types.js +0 -0
  446. /package/{src → dist/src}/monomer-works/consts.js +0 -0
  447. /package/{src → dist/src}/monomer-works/lib-settings.d.ts +0 -0
  448. /package/{src → dist/src}/monomer-works/lib-settings.js +0 -0
  449. /package/{src → dist/src}/monomer-works/monomer-hover.d.ts +0 -0
  450. /package/{src → dist/src}/monomer-works/monomer-hover.js +0 -0
  451. /package/{src → dist/src}/monomer-works/monomer-utils.d.ts +0 -0
  452. /package/{src → dist/src}/monomer-works/monomer-works.d.ts +0 -0
  453. /package/{src → dist/src}/monomer-works/monomer-works.js +0 -0
  454. /package/{src → dist/src}/monomer-works/seq-to-molfile-worker.d.ts +0 -0
  455. /package/{src → dist/src}/monomer-works/seq-to-molfile-worker.js +0 -0
  456. /package/{src → dist/src}/monomer-works/seq-to-molfile.d.ts +0 -0
  457. /package/{src → dist/src}/monomer-works/seq-to-molfile.js +0 -0
  458. /package/{src → dist/src}/monomer-works/to-atomic-level-utils.d.ts +0 -0
  459. /package/{src → dist/src}/monomer-works/to-atomic-level-utils.js +0 -0
  460. /package/{src → dist/src}/monomer-works/to-atomic-level.d.ts +0 -0
  461. /package/{src → dist/src}/monomer-works/to-atomic-level.js +0 -0
  462. /package/{src → dist/src}/monomer-works/types.d.ts +0 -0
  463. /package/{src → dist/src}/monomer-works/types.js +0 -0
  464. /package/{src → dist/src}/monomer-works/utils.d.ts +0 -0
  465. /package/{src → dist/src}/monomer-works/utils.js +0 -0
  466. /package/{src → dist/src}/nucleotides.d.ts +0 -0
  467. /package/{src → dist/src}/nucleotides.js +0 -0
  468. /package/{src → dist/src}/pdb/auto-dock-service.d.ts +0 -0
  469. /package/{src → dist/src}/pdb/auto-dock-service.js +0 -0
  470. /package/{src → dist/src}/pdb/format/types-base.d.ts +0 -0
  471. /package/{src → dist/src}/pdb/format/types-base.js +0 -0
  472. /package/{src → dist/src}/pdb/format/types-pdb.d.ts +0 -0
  473. /package/{src → dist/src}/pdb/format/types-pdb.js +0 -0
  474. /package/{src → dist/src}/pdb/format/types-pdbqt.d.ts +0 -0
  475. /package/{src → dist/src}/pdb/format/types-pdbqt.js +0 -0
  476. /package/{src → dist/src}/pdb/format/types.d.ts +0 -0
  477. /package/{src → dist/src}/pdb/format/types.js +0 -0
  478. /package/{src → dist/src}/pdb/index.d.ts +0 -0
  479. /package/{src → dist/src}/pdb/index.js +0 -0
  480. /package/{src → dist/src}/pdb/pdb-helper.d.ts +0 -0
  481. /package/{src → dist/src}/pdb/pdb-helper.js +0 -0
  482. /package/{src → dist/src}/pdb/types.d.ts +0 -0
  483. /package/{src → dist/src}/pdb/types.js +0 -0
  484. /package/{src → dist/src}/seq-palettes.d.ts +0 -0
  485. /package/{src → dist/src}/seq-palettes.js +0 -0
  486. /package/{src → dist/src}/sequence-encoder.d.ts +0 -0
  487. /package/{src → dist/src}/sequence-encoder.js +0 -0
  488. /package/{src → dist/src}/substructure-filter/bio-substructure-filter-types.d.ts +0 -0
  489. /package/{src → dist/src}/substructure-filter/bio-substructure-filter-types.js +0 -0
  490. /package/{src → dist/src}/tests/monomer-lib-tests.d.ts +0 -0
  491. /package/{src → dist/src}/tests/monomer-lib-tests.js +0 -0
  492. /package/{src → dist/src}/tests/palettes-tests.d.ts +0 -0
  493. /package/{src → dist/src}/tests/palettes-tests.js +0 -0
  494. /package/{src → dist/src}/trees/consts.d.ts +0 -0
  495. /package/{src → dist/src}/trees/consts.js +0 -0
  496. /package/{src → dist/src}/trees/dendrogram.d.ts +0 -0
  497. /package/{src → dist/src}/trees/dendrogram.js +0 -0
  498. /package/{src → dist/src}/trees/index.d.ts +0 -0
  499. /package/{src → dist/src}/trees/index.js +0 -0
  500. /package/{src → dist/src}/trees/phylocanvas.d.ts +0 -0
  501. /package/{src → dist/src}/trees/phylocanvas.js +0 -0
  502. /package/{src → dist/src}/trees/tree-helper.d.ts +0 -0
  503. /package/{src → dist/src}/trees/tree-helper.js +0 -0
  504. /package/{src → dist/src}/trees/types.d.ts +0 -0
  505. /package/{src → dist/src}/trees/types.js +0 -0
  506. /package/{src → dist/src}/trees/utils.d.ts +0 -0
  507. /package/{src → dist/src}/trees/utils.js +0 -0
  508. /package/{src → dist/src}/types/dojo.d.ts +0 -0
  509. /package/{src → dist/src}/types/dojo.js +0 -0
  510. /package/{src → dist/src}/types/index.d.ts +0 -0
  511. /package/{src → dist/src}/types/index.js +0 -0
  512. /package/{src → dist/src}/types/input.d.ts +0 -0
  513. /package/{src → dist/src}/types/input.js +0 -0
  514. /package/{src → dist/src}/types/monomer-library.d.ts +0 -0
  515. /package/{src → dist/src}/types/monomer-library.js +0 -0
  516. /package/{src → dist/src}/types/ngl.d.ts +0 -0
  517. /package/{src → dist/src}/types/ngl.js +0 -0
  518. /package/{src → dist/src}/types/renderer.d.ts +0 -0
  519. /package/{src → dist/src}/types/renderer.js +0 -0
  520. /package/{src → dist/src}/unknown.d.ts +0 -0
  521. /package/{src → dist/src}/unknown.js +0 -0
  522. /package/{src → dist/src}/utils/annotation-track.d.ts +0 -0
  523. /package/{src → dist/src}/utils/annotation-track.js +0 -0
  524. /package/{src → dist/src}/utils/cell-renderer-annotations.d.ts +0 -0
  525. /package/{src → dist/src}/utils/cell-renderer-annotations.js +0 -0
  526. /package/{src → dist/src}/utils/cell-renderer-async-base.d.ts +0 -0
  527. /package/{src → dist/src}/utils/cell-renderer-async-base.js +0 -0
  528. /package/{src → dist/src}/utils/cell-renderer-back-base.d.ts +0 -0
  529. /package/{src → dist/src}/utils/cell-renderer-back-base.js +0 -0
  530. /package/{src → dist/src}/utils/cell-renderer-consts.d.ts +0 -0
  531. /package/{src → dist/src}/utils/cell-renderer-monomer-placer.d.ts +0 -0
  532. /package/{src → dist/src}/utils/cell-renderer-monomer-placer.js +0 -0
  533. /package/{src → dist/src}/utils/cell-renderer.d.ts +0 -0
  534. /package/{src → dist/src}/utils/cell-renderer.js +0 -0
  535. /package/{src → dist/src}/utils/composition-table.d.ts +0 -0
  536. /package/{src → dist/src}/utils/composition-table.js +0 -0
  537. /package/{src → dist/src}/utils/data-provider.d.ts +0 -0
  538. /package/{src → dist/src}/utils/data-provider.js +0 -0
  539. /package/{src → dist/src}/utils/docker.d.ts +0 -0
  540. /package/{src → dist/src}/utils/docker.js +0 -0
  541. /package/{src → dist/src}/utils/err-info.d.ts +0 -0
  542. /package/{src → dist/src}/utils/err-info.js +0 -0
  543. /package/{src → dist/src}/utils/fasta-handler.d.ts +0 -0
  544. /package/{src → dist/src}/utils/fasta-handler.js +0 -0
  545. /package/{src → dist/src}/utils/generator.d.ts +0 -0
  546. /package/{src → dist/src}/utils/generator.js +0 -0
  547. /package/{src → dist/src}/utils/logger.d.ts +0 -0
  548. /package/{src → dist/src}/utils/logger.js +0 -0
  549. /package/{src → dist/src}/utils/macromolecule/alignment.d.ts +0 -0
  550. /package/{src → dist/src}/utils/macromolecule/alignment.js +0 -0
  551. /package/{src → dist/src}/utils/macromolecule/annotations.js +0 -0
  552. /package/{src → dist/src}/utils/macromolecule/consts.d.ts +0 -0
  553. /package/{src → dist/src}/utils/macromolecule/index.d.ts +0 -0
  554. /package/{src → dist/src}/utils/macromolecule/monomers.d.ts +0 -0
  555. /package/{src → dist/src}/utils/macromolecule/monomers.js +0 -0
  556. /package/{src → dist/src}/utils/macromolecule/numbering-schemes.d.ts +0 -0
  557. /package/{src → dist/src}/utils/macromolecule/numbering-schemes.js +0 -0
  558. /package/{src → dist/src}/utils/macromolecule/scoring.d.ts +0 -0
  559. /package/{src → dist/src}/utils/macromolecule/scoring.js +0 -0
  560. /package/{src → dist/src}/utils/macromolecule/seq-handler.d.ts +0 -0
  561. /package/{src → dist/src}/utils/macromolecule/seq-handler.js +0 -0
  562. /package/{src → dist/src}/utils/macromolecule/types.d.ts +0 -0
  563. /package/{src → dist/src}/utils/macromolecule/types.js +0 -0
  564. /package/{src → dist/src}/utils/macromolecule/utils.d.ts +0 -0
  565. /package/{src → dist/src}/utils/macromolecule/utils.js +0 -0
  566. /package/{src → dist/src}/utils/macromolecule-highlight.d.ts +0 -0
  567. /package/{src → dist/src}/utils/macromolecule-highlight.js +0 -0
  568. /package/{src → dist/src}/utils/monomer-selection-dialog.d.ts +0 -0
  569. /package/{src → dist/src}/utils/monomer-selection-dialog.js +0 -0
  570. /package/{src → dist/src}/utils/monomer-ui.d.ts +0 -0
  571. /package/{src → dist/src}/utils/monomer-ui.js +0 -0
  572. /package/{src → dist/src}/utils/seq-helper.d.ts +0 -0
  573. /package/{src → dist/src}/utils/seq-helper.js +0 -0
  574. /package/{src → dist/src}/utils/sequence-column-input.d.ts +0 -0
  575. /package/{src → dist/src}/utils/sequence-column-input.js +0 -0
  576. /package/{src → dist/src}/utils/splitter.d.ts +0 -0
  577. /package/{src → dist/src}/utils/splitter.js +0 -0
  578. /package/{src → dist/src}/utils/syncer.d.ts +0 -0
  579. /package/{src → dist/src}/utils/syncer.js +0 -0
  580. /package/{src → dist/src}/utils/units-handler-base.d.ts +0 -0
  581. /package/{src → dist/src}/utils/units-handler-base.js +0 -0
  582. /package/{src → dist/src}/utils.d.ts +0 -0
  583. /package/{src → dist/src}/utils.js +0 -0
  584. /package/{src → dist/src}/viewers/biotrack.d.ts +0 -0
  585. /package/{src → dist/src}/viewers/biotrack.js +0 -0
  586. /package/{src → dist/src}/viewers/helm-service.d.ts +0 -0
  587. /package/{src → dist/src}/viewers/helm-service.js +0 -0
  588. /package/{src → dist/src}/viewers/molecule3d.d.ts +0 -0
  589. /package/{src → dist/src}/viewers/molecule3d.js +0 -0
  590. /package/{src → dist/src}/viewers/molstar-viewer.d.ts +0 -0
  591. /package/{src → dist/src}/viewers/molstar-viewer.js +0 -0
  592. /package/{src → dist/src}/viewers/ngl-gl-service.d.ts +0 -0
  593. /package/{src → dist/src}/viewers/ngl-gl-service.js +0 -0
  594. /package/{src → dist/src}/viewers/ngl-gl-viewer.d.ts +0 -0
  595. /package/{src → dist/src}/viewers/ngl-gl-viewer.js +0 -0
  596. /package/{src → dist/src}/viewers/phylocanvas-gl-viewer.d.ts +0 -0
  597. /package/{src → dist/src}/viewers/phylocanvas-gl-viewer.js +0 -0
  598. /package/{src → dist/src}/viewers/vd-regions.d.ts +0 -0
  599. /package/{src → dist/src}/viewers/vd-regions.js +0 -0
  600. /package/{src → dist/src}/viewers/viewer.d.ts +0 -0
  601. /package/{src → dist/src}/viewers/viewer.js +0 -0
  602. /package/{src → dist/src}/viewers/web-logo.d.ts +0 -0
  603. /package/{src → dist/src}/viewers/web-logo.js +0 -0
@@ -0,0 +1,1349 @@
1
+ var Nt = function () {
2
+
3
+ 'use strict';
4
+
5
+ function makeArray(length, val) {
6
+ if (val === undefined) {
7
+ val = 0 | 0;
8
+ }
9
+ if (val < 0) {
10
+ val = 0;
11
+ }
12
+ length |= 0;
13
+ var max = 0;
14
+ for (var i = length; i !== 0; i >>>= 1) {
15
+ max++;
16
+ }
17
+ var n = Array(max);
18
+ n[0] = [val];
19
+ for (i = 1; i < max; i++) {
20
+ n[i] = n[i - 1].concat(n[i - 1]);
21
+ }
22
+ var a = [];
23
+ for (var i = 0, l = length; l !== 0; l >>>= 1, i++) {
24
+ if (l & 1) {
25
+ a = a.concat(n[i]);
26
+ }
27
+ }
28
+ return a;
29
+ };
30
+
31
+ var __bitCount = (function () {
32
+ var a = new Uint8Array(256);
33
+ var bin;
34
+ for (var i = 0; i < 256; i++) {
35
+ bin = i;
36
+ bin = bin - ((bin >> 1) & 0x55555555);
37
+ bin = (bin & 0x33333333) + ((bin >> 2) & 0x33333333);
38
+ a[i] = (((bin + (bin >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
39
+ }
40
+ return a;
41
+ })();
42
+
43
+ var __nucleotideTo4Bit = Object.create(null);
44
+ __nucleotideTo4Bit['A'] = 8; // 0b1000
45
+ __nucleotideTo4Bit['T'] = 4; // 0b0100
46
+ __nucleotideTo4Bit['G'] = 2; // 0b0010
47
+ __nucleotideTo4Bit['C'] = 1; // 0b0001
48
+
49
+ function setNucleotide() {
50
+ var n = arguments[0];
51
+ __nucleotideTo4Bit[n] = 0;
52
+ for (var i = 1; i < arguments.length; i++) {
53
+ __nucleotideTo4Bit[n] |= __nucleotideTo4Bit[arguments[i]];
54
+ }
55
+ };
56
+
57
+ setNucleotide('-');
58
+ setNucleotide('W', 'A', 'T');
59
+ setNucleotide('S', 'G', 'C');
60
+ setNucleotide('M', 'A', 'C');
61
+ setNucleotide('K', 'G', 'T');
62
+ setNucleotide('R', 'A', 'G');
63
+ setNucleotide('Y', 'C', 'T');
64
+ setNucleotide('B', 'C', 'G', 'T');
65
+ setNucleotide('D', 'A', 'G', 'T');
66
+ setNucleotide('H', 'A', 'C', 'T');
67
+ setNucleotide('V', 'A', 'C', 'G');
68
+ setNucleotide('N', 'A', 'T', 'G', 'C');
69
+
70
+ var __4BitToNucleotide = (
71
+ function () {
72
+ var a = makeArray(16);
73
+ var keys = Object.keys(__nucleotideTo4Bit);
74
+ for (var i = 0, len = keys.length; i < len; i++) {
75
+ a[__nucleotideTo4Bit[keys[i]]] = keys[i];
76
+ }
77
+ return a;
78
+ }
79
+ )();
80
+
81
+ var __nucleotideList = Object.keys(__nucleotideTo4Bit);
82
+
83
+ var __complementNucleotide = (
84
+ function () {
85
+ var a = Object.create(null);
86
+ a['A'] = 'T';
87
+ a['G'] = 'C';
88
+ a['B'] = 'V';
89
+ a['H'] = 'D';
90
+ a['M'] = 'K';
91
+ a['R'] = 'Y';
92
+ // S, W, N, - not included
93
+ var keys = Object.keys(a);
94
+ for (var i = 0, len = keys.length; i < len; i++) {
95
+ a[a[keys[i]]] = keys[i];
96
+ }
97
+ a['S'] = 'S';
98
+ a['W'] = 'W';
99
+ a['N'] = 'N';
100
+ a['-'] = '-';
101
+ return a;
102
+ }
103
+ )();
104
+
105
+ var __complement4Bit = (
106
+ function () {
107
+ var a = new Uint8Array(16);
108
+ for (var i = 0, len = a.length; i < len; i++) {
109
+ a[i] = __nucleotideTo4Bit[__complementNucleotide[__4BitToNucleotide[i]]];
110
+ }
111
+ return a;
112
+ }
113
+ )();
114
+
115
+ function nucleotideToBin(s) {
116
+ return __nucleotideTo4Bit[s] | 0;
117
+ }
118
+
119
+ function binToNucleotide(b) {
120
+ return __4BitToNucleotide[b] || '-';
121
+ }
122
+
123
+ function complementNucleotide(s) {
124
+ return __complementNucleotide[s] || '-';
125
+ }
126
+
127
+ function complementBin(b) {
128
+ return __complement4Bit[b] | 0;
129
+ }
130
+
131
+ /* Double up to form bytes */
132
+ var __byteComplement;
133
+ var __nucleotidesToByte;
134
+ var __byteToNucleotides;
135
+ var __byteNucleotideContent;
136
+
137
+ void function () {
138
+
139
+ var a = Object.create(null);
140
+ var b = new Uint8Array(256);
141
+ var c = new makeArray(256);
142
+ var d = new makeArray(256);
143
+
144
+ var keys = Object.keys(__nucleotideTo4Bit);
145
+ var len = keys.length;
146
+ var ki;
147
+ var kj;
148
+ var byte;
149
+
150
+ for (var i = 0; i < len; i++) {
151
+ ki = keys[i];
152
+ for (var j = 0; j < len; j++) {
153
+ kj = keys[j];
154
+ byte = __nucleotideTo4Bit[ki] | (__nucleotideTo4Bit[kj] << 4);
155
+ a[ki + kj] = byte;
156
+ b[byte] = __nucleotideTo4Bit[complementNucleotide(kj)] | (__nucleotideTo4Bit[complementNucleotide(ki)] << 4);
157
+ c[byte] = ki + kj;
158
+ d[byte] = [ki, kj];
159
+ }
160
+ }
161
+
162
+ __nucleotidesToByte = a;
163
+ __byteComplement = b;
164
+ __byteToNucleotides = c;
165
+ __byteNucleotideContent = d;
166
+
167
+ }();
168
+
169
+ function nucleotidesToByte(ss) {
170
+ return __nucleotidesToByte[ss] | 0;
171
+ }
172
+
173
+ /* amino acids */
174
+
175
+ var __codonToAminoAcid = Object.create(null);
176
+ __codonToAminoAcid['AAA'] = 'K';
177
+ __codonToAminoAcid['AAT'] = 'N';
178
+ __codonToAminoAcid['AAG'] = 'K';
179
+ __codonToAminoAcid['AAC'] = 'N';
180
+ __codonToAminoAcid['ATA'] = 'I';
181
+ __codonToAminoAcid['ATT'] = 'I';
182
+ __codonToAminoAcid['ATG'] = 'M';
183
+ __codonToAminoAcid['ATC'] = 'I';
184
+ __codonToAminoAcid['AGA'] = 'R';
185
+ __codonToAminoAcid['AGT'] = 'S';
186
+ __codonToAminoAcid['AGG'] = 'R';
187
+ __codonToAminoAcid['AGC'] = 'S';
188
+ __codonToAminoAcid['ACA'] = 'T';
189
+ __codonToAminoAcid['ACT'] = 'T';
190
+ __codonToAminoAcid['ACG'] = 'T';
191
+ __codonToAminoAcid['ACC'] = 'T';
192
+ __codonToAminoAcid['TAA'] = '*';
193
+ __codonToAminoAcid['TAT'] = 'Y';
194
+ __codonToAminoAcid['TAG'] = '&';
195
+ __codonToAminoAcid['TAC'] = 'Y';
196
+ __codonToAminoAcid['TTA'] = 'L';
197
+ __codonToAminoAcid['TTT'] = 'F';
198
+ __codonToAminoAcid['TTG'] = 'L';
199
+ __codonToAminoAcid['TTC'] = 'F';
200
+ __codonToAminoAcid['TGA'] = '$';
201
+ __codonToAminoAcid['TGT'] = 'C';
202
+ __codonToAminoAcid['TGG'] = 'W';
203
+ __codonToAminoAcid['TGC'] = 'C';
204
+ __codonToAminoAcid['TCA'] = 'S';
205
+ __codonToAminoAcid['TCT'] = 'S';
206
+ __codonToAminoAcid['TCG'] = 'S';
207
+ __codonToAminoAcid['TCC'] = 'S';
208
+ __codonToAminoAcid['GAA'] = 'E';
209
+ __codonToAminoAcid['GAT'] = 'D';
210
+ __codonToAminoAcid['GAG'] = 'E';
211
+ __codonToAminoAcid['GAC'] = 'D';
212
+ __codonToAminoAcid['GTA'] = 'V';
213
+ __codonToAminoAcid['GTT'] = 'V';
214
+ __codonToAminoAcid['GTG'] = 'V';
215
+ __codonToAminoAcid['GTC'] = 'V';
216
+ __codonToAminoAcid['GGA'] = 'G';
217
+ __codonToAminoAcid['GGT'] = 'G';
218
+ __codonToAminoAcid['GGG'] = 'G';
219
+ __codonToAminoAcid['GGC'] = 'G';
220
+ __codonToAminoAcid['GCA'] = 'A';
221
+ __codonToAminoAcid['GCT'] = 'A';
222
+ __codonToAminoAcid['GCG'] = 'A';
223
+ __codonToAminoAcid['GCC'] = 'A';
224
+ __codonToAminoAcid['CAA'] = 'Q';
225
+ __codonToAminoAcid['CAT'] = 'H';
226
+ __codonToAminoAcid['CAG'] = 'Q';
227
+ __codonToAminoAcid['CAC'] = 'H';
228
+ __codonToAminoAcid['CTA'] = 'L';
229
+ __codonToAminoAcid['CTT'] = 'L';
230
+ __codonToAminoAcid['CTG'] = 'L';
231
+ __codonToAminoAcid['CTC'] = 'L';
232
+ __codonToAminoAcid['CGA'] = 'R';
233
+ __codonToAminoAcid['CGT'] = 'R';
234
+ __codonToAminoAcid['CGG'] = 'R';
235
+ __codonToAminoAcid['CGC'] = 'R';
236
+ __codonToAminoAcid['CCA'] = 'P';
237
+ __codonToAminoAcid['CCT'] = 'P';
238
+ __codonToAminoAcid['CCG'] = 'P';
239
+ __codonToAminoAcid['CCC'] = 'P';
240
+
241
+ var __12BitToAminoAcid = (function () {
242
+
243
+ var a = makeArray(4096, '?');
244
+ var codons = Object.keys(__codonToAminoAcid);
245
+ var codon;
246
+ for (var i = 0, len = codons.length; i < len; i++) {
247
+ codon = codons[i];
248
+ a[
249
+ (nucleotideToBin(codon[2]) << 8) |
250
+ (nucleotideToBin(codon[1]) << 4) |
251
+ nucleotideToBin(codon[0])
252
+ ] = __codonToAminoAcid[codon];
253
+ }
254
+
255
+ return a;
256
+
257
+ })();
258
+
259
+ function Seq(type) {
260
+
261
+ if (type === undefined) {
262
+ type = 'DNA';
263
+ }
264
+
265
+ if (!{'RNA': true, 'DNA': true}[type]) {
266
+ throw new Error('Sequence type ' + type + ' not supported');
267
+ }
268
+
269
+ this.__type = type;
270
+ this.__isRNA = (type === 'RNA');
271
+
272
+ this.__endPadding = 0;
273
+
274
+ this.__buffer = new ArrayBuffer(4);
275
+
276
+ this.__complement = null;
277
+
278
+ this.__content = null;
279
+ this.__fractionalContent = null;
280
+ this.__contentATGC = null;
281
+ this.__fractionalContent = null;
282
+
283
+ };
284
+
285
+ Seq.prototype.read = function (strData) {
286
+
287
+ var ntToByte = nucleotidesToByte;
288
+
289
+ var nucleotideString = strData.toUpperCase()
290
+ .replace(/\s/g, '')
291
+ .replace('U', 'T')
292
+ .replace(/[^ATGCBVHDMKRYSWN\-]/g, '-');
293
+
294
+ var length = nucleotideString.length | 0;
295
+ var max = length >>> 1;
296
+ var odd = length & 1;
297
+
298
+ var endPadding = (4 - (max + odd) % 4) % 4;
299
+ this.__endPadding = endPadding;
300
+
301
+ var buffer = new ArrayBuffer(max + odd + endPadding + 4);
302
+ var dataArray = new Int8Array(buffer, 4);
303
+
304
+ var n;
305
+ var byte;
306
+ var content;
307
+
308
+ for (var i = 0; i < max; i++) {
309
+
310
+ n = i << 1;
311
+ dataArray[i] = ntToByte(nucleotideString[n] + nucleotideString[++n]);
312
+
313
+ }
314
+
315
+ if (odd) {
316
+
317
+ dataArray[i] = __nucleotideTo4Bit[nucleotideString[i << 1]];
318
+
319
+ }
320
+
321
+ this.__buffer = buffer;
322
+ this.__length = length;
323
+ (new Uint32Array(buffer, 0, 1))[0] = length;
324
+
325
+ this.__complement = null;
326
+
327
+ this.__content = null;
328
+ this.__fractionalContent = null;
329
+ this.__contentATGC = null;
330
+ this.__fractionalContent = null;
331
+
332
+ return this;
333
+
334
+ };
335
+
336
+ Seq.prototype.readFASTA = function (strFASTA) {
337
+
338
+ var data = strFASTA.split(/\n\r?/gi);
339
+
340
+ while (data.length && data[0][0] === '>') {
341
+ data.shift();
342
+ }
343
+
344
+ return this.read(data.join(''));
345
+
346
+ };
347
+
348
+ Seq.prototype.readBuffer = function (buffer) {
349
+
350
+ this.__buffer = buffer;
351
+
352
+ var length = (new Uint32Array(buffer, 0, 1))[0];
353
+
354
+ var max = length >>> 1;
355
+ var odd = length & 1;
356
+
357
+ var endPadding = (4 - (max + odd) % 4) % 4;
358
+ this.__endPadding = endPadding;
359
+
360
+ this.__length = length;
361
+
362
+ this.__complement = null;
363
+
364
+ this.__content = null;
365
+ this.__fractionalContent = null;
366
+ this.__contentATGC = null;
367
+ this.__fractionalContent = null;
368
+
369
+ return this;
370
+
371
+ };
372
+
373
+ Seq.prototype.__byteComplement = function () {
374
+
375
+ var bComp = __byteComplement;
376
+
377
+ var fwdBuffer = this.__buffer;
378
+ var len = fwdBuffer.byteLength;
379
+
380
+ var n, i;
381
+
382
+ var copyBuffer, fromArray, copyArray;
383
+
384
+ var isOdd = this.__length & 1;
385
+
386
+ if (isOdd) {
387
+
388
+ copyBuffer = new ArrayBuffer(len);
389
+ copyArray = new Uint32Array(copyBuffer, 4);
390
+ fromArray = new Uint32Array(fwdBuffer, 4);
391
+
392
+ n = (len - 4) >>> 2;
393
+ while (n--) {
394
+ copyArray[n] = (fromArray[n] << 4) | ((fromArray[n - 1]) >>> 28);
395
+ }
396
+
397
+ } else {
398
+
399
+ copyBuffer = fwdBuffer;
400
+
401
+ }
402
+
403
+ var fwdArray = new Uint8Array(copyBuffer, 4);
404
+
405
+ var buffer = new ArrayBuffer(len);
406
+ var dataArray = new Uint8Array(buffer, 4);
407
+
408
+ n = (len - 4) - this.__endPadding;
409
+ i = 0;
410
+ while (n--) {
411
+ dataArray[i++] = bComp[fwdArray[n]];
412
+ }
413
+
414
+ (new Uint32Array(buffer, 0, 1))[0] = this.__length;
415
+
416
+ return buffer;
417
+
418
+ };
419
+
420
+ Seq.prototype.size = function () {
421
+ return this.__length;
422
+ };
423
+
424
+ Seq.prototype.sequence = function () {
425
+
426
+ var byteToNt = __byteToNucleotides;
427
+ var buffer = this.__buffer;
428
+
429
+ if (buffer.byteLength < 4) {
430
+ return '';
431
+ }
432
+
433
+ var dataArray = new Uint8Array(buffer, 4);
434
+ var len = (buffer.byteLength - 4) - this.__endPadding;
435
+
436
+ var nts = makeArray(len);
437
+
438
+ for (var i = 0; i < len; i++) {
439
+ nts[i] = byteToNt[dataArray[i]];
440
+ }
441
+
442
+ var returnString;
443
+
444
+ i = nts.length - 1;
445
+ if (this.__length & 1) {
446
+ nts[i] = nts[i][0];
447
+ }
448
+
449
+ returnString = nts.join('');
450
+
451
+ if (this.__isRNA) {
452
+ returnString = returnString.replace(/T/gi, 'U');
453
+ }
454
+
455
+ return returnString;
456
+
457
+ };
458
+
459
+ Seq.prototype.complement = function () {
460
+
461
+ if (!this.__complement) {
462
+ this.__complement = this.__byteComplement();
463
+ }
464
+
465
+ var complement = new Seq(this.__type).readBuffer(this.__complement.slice(0));
466
+
467
+ complement.__complement = this.__buffer.slice(0);
468
+
469
+ return complement;
470
+
471
+ };
472
+
473
+ Seq.prototype.equivalent = function (seq) {
474
+
475
+ if (!(seq instanceof Seq)) {
476
+ throw new Error('Can only check for equivalence between sequences');
477
+ }
478
+
479
+ if (this.__type !== seq.__type) {
480
+ return false;
481
+ }
482
+
483
+ var checkInts = new Uint32Array(this.__buffer);
484
+ var compareInts = new Uint32Array(seq.__buffer);
485
+
486
+ for (var i = 0, len = checkInts.length; i < len; i++) {
487
+ if (checkInts[i] !== compareInts[i]) {
488
+ return false;
489
+ }
490
+ }
491
+
492
+ return true;
493
+
494
+ };
495
+
496
+ Seq.prototype.replicate = function (start, length) {
497
+
498
+ start |= 0;
499
+
500
+ if (start < 0) {
501
+ start = this.__length + start;
502
+ }
503
+
504
+ if (length === undefined) {
505
+
506
+ if (start === 0) {
507
+
508
+ return this.__clone();
509
+
510
+ }
511
+
512
+ length = this.__length - start;
513
+
514
+ } else {
515
+
516
+ length |= 0;
517
+ length = Math.min(length, this.__length - start);
518
+
519
+ }
520
+
521
+ length = Math.min(length, this.__length - start);
522
+
523
+ if (length <= 0) {
524
+
525
+ return this.__nullSeq();
526
+
527
+ }
528
+
529
+ return this.__slice(start, length);
530
+
531
+ };
532
+
533
+ Seq.prototype.polymerize = function (seq) {
534
+
535
+ var seqLen = seq.__length;
536
+
537
+ if (!(seq instanceof Seq)) {
538
+ throw new Error('.polymerize requires valid sequence');
539
+ }
540
+
541
+ if (!this.__length) {
542
+ return seq.__clone();
543
+ }
544
+
545
+ var offset = this.__length;
546
+ var length = this.__length + seqLen;
547
+
548
+ var max = length >>> 1;
549
+ var odd = length & 1;
550
+
551
+ var endPadding = (4 - (max + odd) % 4) % 4;
552
+ var newBuffer = new ArrayBuffer(max + odd + endPadding + 4);
553
+ var newArray = new Uint32Array(newBuffer, 4);
554
+
555
+ var copyBuffer = this.__buffer;
556
+ var copyArray = new Uint32Array(copyBuffer, 4);
557
+
558
+ var seqBuffer = seq.__buffer;
559
+ var seqArray = new Uint32Array(seqBuffer, 4);
560
+
561
+ var copyPos = 0;
562
+ var shift = (this.__length % 8) * 4;
563
+ var shiftSeq = 32 - shift;
564
+
565
+ for (var len = copyArray.length; copyPos < len; copyPos++) {
566
+ newArray[copyPos] = copyArray[copyPos];
567
+ }
568
+
569
+ if (shift) {
570
+
571
+ newArray[--copyPos] |= seqArray[0] << shift;
572
+
573
+ for (var i = 0, len = seqArray.length; i < len; i++) {
574
+ newArray[++copyPos] = (seqArray[i] >>> shiftSeq) | (seqArray[i + 1] << shift);
575
+ }
576
+
577
+ } else {
578
+
579
+ for (var i = 0, len = seqArray.length; i < len; i++) {
580
+ newArray[copyPos++] = seqArray[i];
581
+ }
582
+
583
+ }
584
+
585
+ (new Uint32Array(newBuffer, 0, 1))[0] = length;
586
+
587
+ return new Seq(this.__type).readBuffer(newBuffer);
588
+
589
+ };
590
+
591
+ Seq.prototype.insertion = function (seq, offset) {
592
+
593
+ if (!(seq instanceof Seq)) {
594
+ throw new Error('Insertion requires valid sequence');
595
+ }
596
+
597
+ offset |= 0;
598
+
599
+ if (offset < 0) {
600
+ offset = this.__length + offset;
601
+ }
602
+
603
+ offset = Math.min(offset, this.__length);
604
+
605
+ return this.replicate(0, offset).polymerize(seq).polymerize(this.replicate(offset));
606
+
607
+ };
608
+
609
+ Seq.prototype.deletion = function (offset, count) {
610
+
611
+ if (offset === undefined || count === undefined) {
612
+ throw new Error('Must give valid offset and count for deletion');
613
+ }
614
+
615
+ offset |= 0;
616
+ count |= 0;
617
+
618
+ if (count === 0) {
619
+ return this.__clone();
620
+ }
621
+
622
+ if (count < 0) {
623
+ throw new Error('Invalid count for deletion');
624
+ }
625
+
626
+ if (offset < 0) {
627
+ offset = this.__length + offset;
628
+ }
629
+
630
+ offset = Math.min(offset, this.__length);
631
+
632
+ return this.replicate(0, offset).polymerize(this.replicate(offset + count));
633
+
634
+ };
635
+
636
+ Seq.prototype.repeat = function (count) {
637
+
638
+ count |= 0;
639
+
640
+ var copy = this.replicate();
641
+ var base = new Seq(this.__type);
642
+
643
+ if (count <= 0) {
644
+ return base;
645
+ }
646
+
647
+ while (true) {
648
+ if (count & 1) {
649
+ base = base.polymerize(copy);
650
+ }
651
+ count >>>= 1;
652
+ if (!count) {
653
+ break;
654
+ }
655
+ copy = copy.polymerize(copy);
656
+ }
657
+
658
+ return base;
659
+
660
+ };
661
+
662
+ Seq.prototype.mask = function (seq) {
663
+
664
+ if (!(seq instanceof Seq)) {
665
+ throw new Error('Can only mask with valid sequence');
666
+ }
667
+
668
+ var newBuffer = this.__buffer.slice(0);
669
+ var newArray = new Uint32Array(newBuffer, 4);
670
+ var compareArray = new Uint32Array(seq.__buffer, 4);
671
+
672
+ for (var i = 0, len = newArray.length; i < len; i++) {
673
+ newArray[i] &= compareArray[i];
674
+ }
675
+
676
+ return new Seq(this.__type).readBuffer(newBuffer);
677
+
678
+ };
679
+
680
+ Seq.prototype.cover = function (seq) {
681
+
682
+ if (!(seq instanceof Seq)) {
683
+ throw new Error('Can only cover with valid sequence');
684
+ }
685
+
686
+ var newBuffer = this.__buffer.slice(0);
687
+ var newArray = new Uint32Array(newBuffer, 4);
688
+ var compareArray = new Uint32Array(seq.__buffer, 4);
689
+
690
+ for (var i = 0, len = newArray.length; i < len; i++) {
691
+ newArray[i] |= compareArray[i];
692
+ }
693
+
694
+ return new Seq(this.__type).readBuffer(newBuffer);
695
+
696
+ };
697
+
698
+ Seq.prototype.__nullSeq = function () {
699
+
700
+ return new Seq(this.__type).readBuffer(new ArrayBuffer(4));
701
+
702
+ };
703
+
704
+ Seq.prototype.__clone = function () {
705
+
706
+ return new Seq(this.__type).readBuffer(this.__buffer.slice(0));
707
+
708
+ };
709
+
710
+ Seq.prototype.__slice = function (start, length) {
711
+
712
+ var max = length >>> 1;
713
+ var odd = length & 1;
714
+
715
+ var endPadding = (4 - (max + odd) % 4) % 4;
716
+ var newBuffer = new ArrayBuffer(max + odd + endPadding + 4);
717
+ var newArray = new Uint32Array(newBuffer, 4);
718
+
719
+ var subBuffer = this.__buffer.slice(4 + (start >>> 1), 4 + (start >>> 1) + newBuffer.byteLength);
720
+ var subInt32Length = subBuffer.byteLength >>> 2;
721
+ var subArray = new Uint32Array(subBuffer, 0, subInt32Length);
722
+
723
+ if (start & 1) {
724
+
725
+ for (var i = 0, len = subArray.length; i < len; i++) {
726
+ newArray[i] = (subArray[i] >>> 4) | (subArray[i + 1] << 28);
727
+ }
728
+
729
+ var remainder = subBuffer.byteLength - subArray.byteLength;
730
+ if (remainder) {
731
+ var remainderArray = new Uint8Array(newBuffer, 4 + (i << 2));
732
+ var subRemainderArray = new Uint8Array(subBuffer, i << 2);
733
+ if (newArray.length > 0) {
734
+ newArray[i - 1] |= subRemainderArray[0] << 28;
735
+ }
736
+ for (var i = 0, len = subRemainderArray.length; i < len; i++) {
737
+ remainderArray[i] = (subRemainderArray[i] >>> 4) | (subRemainderArray[i + 1] << 4);
738
+ }
739
+ }
740
+
741
+ } else {
742
+
743
+ for (var i = 0, len = subArray.length; i < len; i++) {
744
+ newArray[i] = subArray[i];
745
+ }
746
+
747
+ var remainder = subArray.byteLength - subBuffer.byteLength;
748
+ if (remainder) {
749
+ var remainderArray = new Uint8Array(newBuffer, 4 + (i << 2));
750
+ var subRemainderArray = new Uint8Array(subBuffer, i << 2);
751
+ for (var i = 0, len = subRemainderArray.length; i < len; i++) {
752
+ remainderArray[i] = subRemainderArray[i];
753
+ }
754
+ }
755
+
756
+ }
757
+
758
+ var clearShift = ((endPadding * 2) + odd) * 4;
759
+
760
+ var clearOut = new Uint32Array(newBuffer, newBuffer.byteLength - 4);
761
+ clearOut[0] = (clearOut[0] << clearShift) >>> clearShift;
762
+
763
+ (new Uint32Array(newBuffer, 0, 1))[0] = length;
764
+
765
+ return new Seq(this.__type).readBuffer(newBuffer);
766
+
767
+ };
768
+
769
+ Seq.prototype.content = function () {
770
+
771
+ if (!this.__content) {
772
+
773
+ var ntContentByte = makeArray(256);
774
+
775
+ var buffer = this.__buffer;
776
+ var dataArray = new Uint8Array(buffer);
777
+
778
+ for (var i = 4; i < buffer.byteLength - this.__endPadding; i++) {
779
+ ntContentByte[dataArray[i]]++;
780
+ }
781
+
782
+ var binToNt = binToNucleotide;
783
+ var ntList = __nucleotideList;
784
+
785
+ var ntContent = Object.create(null);
786
+ for (var i = 0, len = ntList.length; i < len; i++) {
787
+ ntContent[ntList[i]] = 0;
788
+ }
789
+
790
+ for (var i = 0, len = ntContentByte.length; i < len; i++) {
791
+ if (ntContentByte[i]) {
792
+ ntContent[binToNt(i & 0xF)] += ntContentByte[i];
793
+ ntContent[binToNt(i >>> 4)] += ntContentByte[i];
794
+ }
795
+ }
796
+
797
+ if (this.__length & 1) {
798
+ ntContent['-']--;
799
+ }
800
+
801
+ if (this.__isRNA) {
802
+ ntContent['U'] = ntContent['T'];
803
+ delete ntContent['T'];
804
+ }
805
+
806
+ this.__content = ntContent;
807
+
808
+ }
809
+
810
+ var returnContent = Object.create(null);
811
+ var keys = Object.keys(this.__content);
812
+ for (var i = 0, len = keys.length; i < len; i++) {
813
+ returnContent[keys[i]] = this.__content[keys[i]];
814
+ }
815
+
816
+ return returnContent;
817
+
818
+ };
819
+
820
+ Seq.prototype.fractionalContent = function () {
821
+
822
+ if (!this.__fractionalContent) {
823
+
824
+ var content = this.content();
825
+ var nts = Object.keys(content);
826
+ for (var i = 0, len = nts.length; i < len; i++) {
827
+ content[nts[i]] = content[nts[i]] / this.__length;
828
+ }
829
+
830
+ this.__fractionalContent = content;
831
+
832
+ }
833
+
834
+ var returnContent = Object.create(null);
835
+ var keys = Object.keys(this.__fractionalContent);
836
+ for (var i = 0, len = keys.length; i < len; i++) {
837
+ returnContent[keys[i]] = this.__fractionalContent[keys[i]];
838
+ }
839
+
840
+ return returnContent;
841
+
842
+ };
843
+
844
+ Seq.prototype.contentATGC = function () {
845
+
846
+ if (!this.__contentATGC) {
847
+
848
+ var ntToBin = nucleotideToBin;
849
+
850
+ var content = this.content();
851
+ var nts = Object.keys(content);
852
+ var contentATGC = Object.create(null);
853
+ contentATGC['A'] = 0;
854
+ contentATGC['T'] = 0;
855
+ contentATGC['G'] = 0;
856
+ contentATGC['C'] = 0;
857
+
858
+ var bits = 0;
859
+ var nt;
860
+ var ntBin;
861
+ var n;
862
+ var curContent;
863
+
864
+ for (var i = 0, len = nts.length; i < len; i++) {
865
+ nt = nts[i];
866
+ n = ntToBin(nt);
867
+ for (bits = 0; n; bits++) {
868
+ n &= n - 1;
869
+ }
870
+
871
+ ntBin = ntToBin(nt);
872
+ curContent = content[nts[i]] * (1 / bits);
873
+
874
+ contentATGC['A'] += (((ntToBin('A') & ntBin) | 0) && curContent);
875
+ contentATGC['T'] += (((ntToBin('T') & ntBin) | 0) && curContent);
876
+ contentATGC['G'] += (((ntToBin('G') & ntBin) | 0) && curContent);
877
+ contentATGC['C'] += (((ntToBin('C') & ntBin) | 0) && curContent);
878
+
879
+ }
880
+
881
+ if (this.__isRNA) {
882
+ contentATGC['U'] = contentATGC['T'];
883
+ delete contentATGC['T'];
884
+ }
885
+
886
+ this.__contentATGC = contentATGC;
887
+
888
+ }
889
+
890
+ var returnContent = Object.create(null);
891
+ var keys = Object.keys(this.__contentATGC);
892
+ for (var i = 0, len = keys.length; i < len; i++) {
893
+ returnContent[keys[i]] = this.__contentATGC[keys[i]];
894
+ }
895
+
896
+ return returnContent;
897
+
898
+ };
899
+
900
+ Seq.prototype.fractionalContentATGC = function () {
901
+
902
+ if (!this.__fractionalContentATGC) {
903
+
904
+ var content = this.contentATGC();
905
+ var nts = Object.keys(content);
906
+ for (var i = 0, len = nts.length; i < len; i++) {
907
+ content[nts[i]] = content[nts[i]] / this.__length;
908
+ }
909
+
910
+ this.__fractionalContentATGC = content;
911
+
912
+ }
913
+
914
+ var returnContent = Object.create(null);
915
+ var keys = Object.keys(this.__fractionalContentATGC);
916
+ for (var i = 0, len = keys.length; i < len; i++) {
917
+ returnContent[keys[i]] = this.__fractionalContentATGC[keys[i]];
918
+ }
919
+
920
+ return returnContent;
921
+
922
+ };
923
+
924
+ Seq.prototype.translate = function (ntOffset, ntCount) {
925
+
926
+ var binToAA = __12BitToAminoAcid;
927
+
928
+ ntOffset |= 0;
929
+
930
+ if (ntCount === undefined) {
931
+ ntCount = this.__length - ntOffset;
932
+ }
933
+
934
+ ntCount |= 0;
935
+ ntCount -= (ntCount % 3);
936
+
937
+ var offset = (ntOffset >>> 1) + 4;
938
+ var max = offset + (ntCount >>> 1) + (ntCount & 1);
939
+
940
+ var dataArray = new Uint8Array(this.__buffer);
941
+
942
+ var aminoAcids = makeArray(ntCount / 3);
943
+ /**/
944
+ var aa = 0;
945
+ var lastByte, byte1, byte2, byte3;
946
+
947
+ if ((ntOffset & 1) === 0) {
948
+
949
+ for (var i = offset; i < max; i += 3) {
950
+
951
+ var byte1 = dataArray[i];
952
+ var byte2 = dataArray[i + 1];
953
+ var byte3 = dataArray[i + 2];
954
+
955
+ aminoAcids[aa++] = binToAA[byte1 | ((byte2 & 0xF) << 8)];
956
+ aminoAcids[aa++] = binToAA[(byte3 << 4) | (byte2 >>> 4)];
957
+
958
+ }
959
+
960
+ } else {
961
+
962
+ lastByte = dataArray[offset];
963
+
964
+ for (var i = offset + 1; i < max; i += 3) {
965
+
966
+ byte1 = dataArray[i];
967
+ byte2 = dataArray[i + 1];
968
+ byte3 = dataArray[i + 2];
969
+
970
+ aminoAcids[aa++] = binToAA[(lastByte >> 4) | (byte1 << 4)];
971
+ aminoAcids[aa++] = binToAA[byte2 | ((byte3 & 0xF) << 8)];
972
+
973
+ lastByte = byte3;
974
+
975
+ }
976
+
977
+ }
978
+
979
+ if (ntCount & 1) {
980
+ aminoAcids.pop();
981
+ }
982
+
983
+ return aminoAcids.join('');
984
+
985
+ };
986
+
987
+ Seq.prototype.translateFrame = function (frame, AAoffset, AAcount) {
988
+
989
+ if (frame === undefined) {
990
+ frame = 0;
991
+ }
992
+
993
+ if (frame !== 0 && frame !== 1 && frame !== 2) {
994
+ throw new Error('Invalid translation frame, must be 0, 1 or 2.');
995
+ }
996
+
997
+ if (AAoffset === undefined) {
998
+ return this.translate(frame);
999
+ }
1000
+
1001
+ if (AAcount === undefined) {
1002
+ return this.translate(frame + ((AAoffset | 0) * 3));
1003
+ }
1004
+
1005
+ return this.translate(frame + ((AAoffset | 0) * 3), (AAcount * 3) | 0);
1006
+
1007
+ };
1008
+
1009
+ Seq.prototype.mapSequence = function (seq, offset) {
1010
+
1011
+ if (!(seq instanceof Seq)) {
1012
+ throw new Error('.mapSequence requires valid Seq');
1013
+ }
1014
+
1015
+ return new MatchMap(seq, this, offset);
1016
+
1017
+ };
1018
+
1019
+ /* MatchResult */
1020
+
1021
+ function MatchResult(matchMap, pos, score) {
1022
+
1023
+ Object.defineProperty(this, '__matchMap', {value: matchMap});
1024
+
1025
+ this.position = pos;
1026
+ this.score = score;
1027
+ this.__align = null;
1028
+
1029
+ };
1030
+
1031
+ MatchResult.prototype.alignment = function () {
1032
+
1033
+ if (!this.__align) {
1034
+ var map = this.__matchMap;
1035
+ if (this.position < 0) {
1036
+ this.__align = (new Nt.Seq())
1037
+ .read('-')
1038
+ .repeat(-this.position)
1039
+ .polymerize(map.__searchSpace.replicate(0, map.__query.__length + this.position));
1040
+ } else if (this.position + map.__query.__length > map.__searchSpace.__length) {
1041
+ this.__align = map.__searchSpace
1042
+ .replicate(this.position)
1043
+ .polymerize((new Nt.Seq()).read('-').repeat(map.__searchSpace.__length - this.position));
1044
+ } else {
1045
+ this.__align = map.__searchSpace.replicate(this.position, map.__query.__length);
1046
+ }
1047
+ }
1048
+ return this.__align;
1049
+
1050
+ };
1051
+
1052
+ MatchResult.prototype.alignmentMask = function () {
1053
+
1054
+ return this.__matchMap.__query.mask(this.alignment());
1055
+
1056
+ };
1057
+
1058
+ MatchResult.prototype.alignmentCover = function () {
1059
+
1060
+ return this.__matchMap.__query.cover(this.alignment());
1061
+
1062
+ };
1063
+
1064
+ /* MatchMap */
1065
+
1066
+ function MatchMap(query, searchSpace, offset) {
1067
+
1068
+ if (!(query instanceof Seq) || !(searchSpace instanceof Seq)) {
1069
+ throw new Error('MatchMap requires valid Seq');
1070
+ }
1071
+
1072
+ this.__query = query.replicate();
1073
+ this.__searchSpace = searchSpace.replicate();
1074
+ this.__results = [];
1075
+ this.__orderedResults = [];
1076
+ this.__matchFrequencyData = null;
1077
+ this.__initialized = false;
1078
+
1079
+ this.__offset = Math.max(0, offset | 0);
1080
+ this.__positionAdjustment = this.__offset - (this.__query.size() - 1);
1081
+
1082
+ this.__debug = {
1083
+ searchTime: null,
1084
+ prepareTime: null,
1085
+ sortTime: null
1086
+ };
1087
+
1088
+ };
1089
+
1090
+ MatchMap.prototype.initialize = function (results) {
1091
+
1092
+ this.__orderedResults = [];
1093
+ this.__matchFrequencyData = null;
1094
+
1095
+ this.__initialized = true;
1096
+
1097
+ var t = (new Date).valueOf();
1098
+
1099
+ if (!results) {
1100
+
1101
+ var dataArray = new Uint32Array(this.__execute(this.__query.__buffer, this.__searchSpace.__buffer));
1102
+
1103
+ this.__debug.searchTime = (-t) + (t = (new Date).valueOf());
1104
+
1105
+ var queryLen = this.__query.size();
1106
+ var searchLen = this.__searchSpace.size();
1107
+ var resultsLen = ((8 - (queryLen % 8)) % 8) + 1;
1108
+ var totalLen = searchLen + queryLen - 1;
1109
+ results = [].slice.call(dataArray, resultsLen, resultsLen + totalLen);
1110
+
1111
+ }
1112
+
1113
+ this.__results = results;
1114
+ this.__debug.prepareTime = (-t) + (t = (new Date).valueOf());
1115
+
1116
+ return this;
1117
+
1118
+ };
1119
+
1120
+ MatchMap.prototype.sort = function () {
1121
+
1122
+ if (!this.__initialized) {
1123
+ throw new Error('MatchMap must be initialized first.');
1124
+ }
1125
+
1126
+ var t = new Date().valueOf();
1127
+
1128
+ if (this.__debug.sortTime !== null) {
1129
+ return this;
1130
+ }
1131
+
1132
+ var adjust = this.__positionAdjustment;
1133
+ this.__orderedResults = this.__results
1134
+ .map(function (v, i) {
1135
+ return {n: i + adjust, s: v};
1136
+ })
1137
+ .sort(function (a, b) {
1138
+ return b.s - a.s;
1139
+ });
1140
+ this.__debug.sortTime = new Date().valueOf() - t;
1141
+ return this;
1142
+
1143
+ };
1144
+
1145
+ MatchMap.prototype.__calculate_p_match = function (query, searchSpace) {
1146
+
1147
+ /*
1148
+ The approximate probability that two randomly chosen nucleotides
1149
+ from QUERY and SEARCH match each other
1150
+ */
1151
+
1152
+ var queryContent = query.fractionalContentATGC();
1153
+ var searchSpaceContent = searchSpace.fractionalContentATGC();
1154
+
1155
+ return (queryContent['A'] * searchSpaceContent['A']) +
1156
+ (queryContent['T'] * searchSpaceContent['T']) +
1157
+ (queryContent['G'] * searchSpaceContent['G']) +
1158
+ (queryContent['C'] * searchSpaceContent['C']);
1159
+
1160
+ };
1161
+
1162
+ MatchMap.prototype.results = function (offset, count) {
1163
+
1164
+ if (!this.__initialized) {
1165
+ throw new Error('MatchMap must be initialized first.');
1166
+ }
1167
+
1168
+ if (offset === undefined) {
1169
+ return this.__results.slice();
1170
+ }
1171
+
1172
+ if (count === undefined) {
1173
+ return this.__results.slice(offset | 0);
1174
+ }
1175
+
1176
+ return this.__results.slice(offset | 0, count | 0);
1177
+
1178
+ };
1179
+
1180
+ MatchMap.prototype.best = function () {
1181
+
1182
+ if (!this.__initialized) {
1183
+ throw new Error('MatchMap must be initialized first.');
1184
+ }
1185
+
1186
+ if (!this.__orderedResults.length) {
1187
+ throw new Error('MatchMap must be sorted first.');
1188
+ }
1189
+
1190
+ var result = this.__orderedResults[0];
1191
+ return new MatchResult(this, result.n, result.s);
1192
+
1193
+ };
1194
+
1195
+ MatchMap.prototype.top = function (n) {
1196
+
1197
+ if (!this.__initialized) {
1198
+ throw new Error('MatchMap must be initialized first.');
1199
+ }
1200
+
1201
+ if (!this.__orderedResults.length) {
1202
+ throw new Error('MatchMap must be sorted first.');
1203
+ }
1204
+
1205
+ var self = this;
1206
+
1207
+ return this.__orderedResults.slice(0, n).map(function (result) {
1208
+ return new MatchResult(self, result.n, result.s);
1209
+ });
1210
+
1211
+ };
1212
+
1213
+ MatchMap.prototype.bottom = function (n) {
1214
+
1215
+ if (!this.__initialized) {
1216
+ throw new Error('MatchMap must be initialized first.');
1217
+ }
1218
+
1219
+ if (!this.__orderedResults.length) {
1220
+ throw new Error('MatchMap must be sorted first.');
1221
+ }
1222
+
1223
+ var self = this;
1224
+
1225
+ var adjust = this.__positionAdjustment;
1226
+ var len = this.__orderedResults.length;
1227
+ return this.__orderedResults.slice(this.__orderedResults.length - n, n).map(function (result) {
1228
+ return new MatchResult(self, result.n, result.s);
1229
+ });
1230
+
1231
+ };
1232
+
1233
+ /* Can be optimized with binary splitting */
1234
+
1235
+ MatchMap.prototype.matchFrequencyData = function () {
1236
+
1237
+ if (!this.__initialized) {
1238
+ throw new Error('MatchMap must be initialized first.');
1239
+ }
1240
+
1241
+ if (!this.__orderedResults.length) {
1242
+ throw new Error('MatchMap must be sorted first.');
1243
+ }
1244
+
1245
+ if (this.__matchFrequencyData) {
1246
+ return this.__matchFrequencyData;
1247
+ }
1248
+
1249
+ var ordered = this.__orderedResults;
1250
+ var matchFrequencyData = makeArray(this.__query.size() + 1);
1251
+
1252
+ var maxMatch = this.__query.size();
1253
+ var lastIndex = 0;
1254
+ var num;
1255
+
1256
+ for (var i = 0, len = ordered.length; i < len; i++) {
1257
+ num = ordered[i].s;
1258
+ if (num < maxMatch) {
1259
+ matchFrequencyData[maxMatch] = i - lastIndex;
1260
+ lastIndex = i;
1261
+ maxMatch = num;
1262
+ }
1263
+ if (num === 0) {
1264
+ matchFrequencyData[0] = len - i;
1265
+ break;
1266
+ }
1267
+ }
1268
+
1269
+ return (this.__matchFrequencyData = matchFrequencyData);
1270
+
1271
+ };
1272
+
1273
+ MatchMap.prototype.__countMatches = function (int, bitCount) {
1274
+
1275
+ int |= int >>> 1;
1276
+ int |= int >>> 2;
1277
+ int &= 0x11111111;
1278
+ int |= int >>> 3;
1279
+ int |= int >>> 6;
1280
+ return bitCount[((int >>> 12) & 0xF0) | (int & 0xF)];
1281
+
1282
+ };
1283
+
1284
+ MatchMap.prototype.__execute = function (queryBuffer, searchSpaceBuffer) {
1285
+
1286
+ var queryInts, spaceInts, queryIntsLength, spaceIntsLength,
1287
+ arrLen, mapBuffer, mapArray,
1288
+ A, B, A1, A2, T, cur, pos, move, i, k,
1289
+ adjustNeg, adjustPos,
1290
+ fnCountMatches, bitCount;
1291
+
1292
+ queryInts = new Uint32Array(queryBuffer, 4);
1293
+ spaceInts = new Uint32Array(searchSpaceBuffer, 4);
1294
+
1295
+ fnCountMatches = this.__countMatches;
1296
+ bitCount = __bitCount;
1297
+
1298
+ queryIntsLength = queryInts.length | 0;
1299
+ spaceIntsLength = spaceInts.length | 0;
1300
+
1301
+ arrLen = (queryIntsLength + spaceIntsLength) << 3;
1302
+ mapBuffer = new ArrayBuffer(4 * arrLen);
1303
+ mapArray = new Uint32Array(mapBuffer);
1304
+
1305
+ for (k = 0 | 0; k < queryIntsLength; k++) {
1306
+
1307
+ A = queryInts[k];
1308
+ cur = (queryIntsLength - k) << 3;
1309
+
1310
+ for (i = 0 | 0; i < spaceIntsLength; i++) {
1311
+ (T = A & spaceInts[i]) && (mapArray[(i << 3) + cur] += fnCountMatches(T, bitCount));
1312
+ }
1313
+
1314
+ A1 = A >>> 4;
1315
+ A2 = A << 4;
1316
+
1317
+ adjustNeg = cur - 1;
1318
+ adjustPos = cur + 1;
1319
+
1320
+ while (A1 || A2) {
1321
+
1322
+ for (i = 0 | 0; i < spaceIntsLength; i++) {
1323
+ B = spaceInts[i];
1324
+ pos = (i << 3);
1325
+
1326
+ (T = A1 & B) && (mapArray[pos + adjustNeg] += fnCountMatches(T, bitCount));
1327
+ (T = A2 & B) && (mapArray[pos + adjustPos] += fnCountMatches(T, bitCount));
1328
+ }
1329
+
1330
+ A1 >>>= 4;
1331
+ A2 <<= 4;
1332
+
1333
+ --adjustNeg;
1334
+ ++adjustPos;
1335
+
1336
+ }
1337
+
1338
+ }
1339
+
1340
+ return mapBuffer;
1341
+
1342
+ };
1343
+
1344
+ return {
1345
+ Seq: Seq,
1346
+ MatchMap: MatchMap
1347
+ };
1348
+
1349
+ }();