@datagrok/bio 2.13.2 → 2.13.5

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 (107) hide show
  1. package/.eslintrc.json +1 -1
  2. package/CHANGELOG.md +26 -0
  3. package/detectors.js +52 -38
  4. package/dist/111.js +2 -0
  5. package/dist/111.js.map +1 -0
  6. package/dist/234.js +2 -0
  7. package/dist/234.js.map +1 -0
  8. package/dist/242.js +2 -0
  9. package/dist/242.js.map +1 -0
  10. package/dist/{286.js → 248.js} +1 -1
  11. package/dist/248.js.map +1 -0
  12. package/dist/284.js +3 -0
  13. package/dist/284.js.map +1 -0
  14. package/dist/317.js +2 -0
  15. package/dist/317.js.map +1 -0
  16. package/dist/589.js +2 -0
  17. package/dist/589.js.map +1 -0
  18. package/dist/603.js +2 -0
  19. package/dist/603.js.map +1 -0
  20. package/dist/682.js +2 -0
  21. package/dist/682.js.map +1 -0
  22. package/dist/705.js +2 -0
  23. package/dist/705.js.map +1 -0
  24. package/dist/{590.js → 731.js} +2 -2
  25. package/dist/731.js.map +1 -0
  26. package/dist/778.js +2 -0
  27. package/dist/778.js.map +1 -0
  28. package/dist/793.js +2 -0
  29. package/dist/793.js.map +1 -0
  30. package/dist/950.js +2 -0
  31. package/dist/950.js.map +1 -0
  32. package/dist/package-test.js +6 -7
  33. package/dist/package-test.js.map +1 -1
  34. package/dist/package.js +6 -7
  35. package/dist/package.js.map +1 -1
  36. package/files/cache_config.json +7 -0
  37. package/package.json +17 -23
  38. package/src/analysis/sequence-activity-cliffs.ts +1 -1
  39. package/src/function-edtiors/split-to-monomers-editor.ts +6 -7
  40. package/src/package-types.ts +19 -19
  41. package/src/package.ts +23 -16
  42. package/src/substructure-search/substructure-search.ts +9 -10
  43. package/src/tests/WebLogo-positions-test.ts +6 -6
  44. package/src/tests/activity-cliffs-tests.ts +5 -2
  45. package/src/tests/bio-tests.ts +6 -6
  46. package/src/tests/checkInputColumn-tests.ts +3 -3
  47. package/src/tests/converters-test.ts +1 -1
  48. package/src/tests/detectors-tests.ts +25 -13
  49. package/src/tests/fasta-export-tests.ts +2 -2
  50. package/src/tests/mm-distance-tests.ts +1 -1
  51. package/src/tests/msa-tests.ts +2 -2
  52. package/src/tests/renderers-test.ts +5 -5
  53. package/src/tests/scoring.ts +26 -5
  54. package/src/tests/seq-handler-get-region.ts +4 -4
  55. package/src/tests/sequence-space-test.ts +1 -1
  56. package/src/tests/substructure-filters-tests.ts +4 -1
  57. package/src/tests/to-atomic-level-tests.ts +1 -1
  58. package/src/utils/cell-renderer-consts.ts +3 -11
  59. package/src/utils/cell-renderer.ts +15 -17
  60. package/src/utils/context-menu.ts +1 -1
  61. package/src/utils/convert.ts +7 -4
  62. package/src/utils/get-region-func-editor.ts +11 -16
  63. package/src/utils/get-region.ts +5 -5
  64. package/src/utils/macromolecule-column-widget.ts +1 -1
  65. package/src/utils/monomer-lib/lib-manager.ts +20 -8
  66. package/src/utils/monomer-lib/library-file-manager/file-manager.ts +28 -24
  67. package/src/utils/monomer-lib/library-file-manager/file-validator.ts +2 -1
  68. package/src/utils/monomer-lib/library-file-manager/ui.ts +3 -6
  69. package/src/utils/multiple-sequence-alignment-ui.ts +10 -11
  70. package/src/utils/multiple-sequence-alignment.ts +2 -2
  71. package/src/utils/pepsea.ts +1 -1
  72. package/src/utils/save-as-fasta.ts +5 -5
  73. package/src/viewers/vd-regions-viewer.ts +2 -2
  74. package/src/widgets/bio-substructure-filter.ts +7 -7
  75. package/src/widgets/package-settings-editor-widget.ts +27 -27
  76. package/src/widgets/representations.ts +57 -61
  77. package/tsconfig.json +4 -4
  78. package/webpack.config.js +1 -1
  79. package/dist/23.js +0 -2
  80. package/dist/23.js.map +0 -1
  81. package/dist/231.js +0 -2
  82. package/dist/231.js.map +0 -1
  83. package/dist/282.js +0 -2
  84. package/dist/282.js.map +0 -1
  85. package/dist/286.js.map +0 -1
  86. package/dist/356.js +0 -2
  87. package/dist/356.js.map +0 -1
  88. package/dist/36.js +0 -2
  89. package/dist/36.js.map +0 -1
  90. package/dist/40.js +0 -2
  91. package/dist/40.js.map +0 -1
  92. package/dist/413.js +0 -2
  93. package/dist/413.js.map +0 -1
  94. package/dist/42.js +0 -2
  95. package/dist/42.js.map +0 -1
  96. package/dist/427.js +0 -2
  97. package/dist/427.js.map +0 -1
  98. package/dist/545.js +0 -3
  99. package/dist/545.js.map +0 -1
  100. package/dist/590.js.map +0 -1
  101. package/dist/65.js +0 -2
  102. package/dist/65.js.map +0 -1
  103. package/dist/796.js +0 -2
  104. package/dist/796.js.map +0 -1
  105. package/dist/package-test.js.LICENSE.txt +0 -1
  106. package/dist/package.js.LICENSE.txt +0 -1
  107. /package/dist/{545.js.LICENSE.txt → 284.js.LICENSE.txt} +0 -0
package/dist/282.js DELETED
@@ -1,2 +0,0 @@
1
- var bio;(()=>{"use strict";var e,r,t={1282:(e,r,t)=>{var n=t(7862);const o=e=>null==e;function a(e,r,t,n){if(t>e[e.length-1])return;const o=e.findIndex((e=>t<e));e.pop(),e.splice(o,0,t),r.pop(),r.splice(o,0,n)}var l=t(6361),i=t(9657);onmessage=async e=>{const{values:r,startIdx:t,endIdx:s,fnNames:c,opts:p,nNeighbours:f,weights:h,aggregationMethod:u}=e.data;try{const e=new Array(r[0].length).fill(null).map((()=>new Array(f).fill(-1))),g=new Array(r[0].length).fill(null).map((()=>new Array(f).fill(999999))),v=function(e,r){return e===n.y.MANHATTAN?e=>e.reduce(((e,t,n)=>e+t*r[n]),0):e=>{const t=e.reduce(((e,t,n)=>e+(t*r[n])**2),0);return Math.sqrt(t)}}(u,h),d=s-t;r.forEach(((e,t)=>{if((0,l.sQ)(c[t]))for(let n=0;n<e.length;++n)o(e[n])||(r[t][n]=new i.Z(r[t][n]._data,r[t][n]._length))}));let b=0;const w=new Array(c.length).fill(null).map(((e,r)=>new l.UH(c[r]).getMeasure(p[r]))),y=r[0].length-2-Math.floor(Math.sqrt(-8*t+4*r[0].length*(r[0].length-1)-7)/2-.5),m=t-r[0].length*y+Math.floor((y+1)*(y+2)/2);let x=y,O=m;for(;b<d;){const t=w.map(((e,t)=>o(r[t][x])||o(r[t][O])?1:e(r[t][x],r[t][O]))),n=1===t.length?t[0]:v(t);a(g[x],e[x],n,O),a(g[O],e[O],n,x),b++,O++,O===r[0].length&&(x++,O=x+1)}postMessage({knnDistances:g,knnIndexes:e})}catch(e){postMessage({error:e})}}}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,o.x=()=>{var e=o.O(void 0,[36,413],(()=>o(1282)));return o.O(e)},e=[],o.O=(r,t,n,a)=>{if(!t){var l=1/0;for(p=0;p<e.length;p++){for(var[t,n,a]=e[p],i=!0,s=0;s<t.length;s++)(!1&a||l>=a)&&Object.keys(o.O).every((e=>o.O[e](t[s])))?t.splice(s--,1):(i=!1,a<l&&(l=a));if(i){e.splice(p--,1);var c=n();void 0!==c&&(r=c)}}return r}a=a||0;for(var p=e.length;p>0&&e[p-1][2]>a;p--)e[p]=e[p-1];e[p]=[t,n,a]},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+".js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&!e;)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={282:1};o.f.i=(r,t)=>{e[r]||importScripts(o.p+o.u(r))};var r=self.webpackChunkbio=self.webpackChunkbio||[],t=r.push.bind(r);r.push=r=>{var[n,a,l]=r;for(var i in a)o.o(a,i)&&(o.m[i]=a[i]);for(l&&l(o);n.length;)e[n.pop()]=1;t(r)}})(),r=o.x,o.x=()=>Promise.all([o.e(36),o.e(413)]).then(r);var a=o.x();bio=a})();
2
- //# sourceMappingURL=282.js.map
package/dist/282.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"282.js","mappings":"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","sources":["webpack://bio/webpack/runtime/chunk loaded","webpack://bio/webpack/runtime/startup chunk dependencies","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/utils.js","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/knn-worker.js","webpack://bio/webpack/bootstrap","webpack://bio/webpack/runtime/define property getters","webpack://bio/webpack/runtime/ensure chunk","webpack://bio/webpack/runtime/get javascript chunk filename","webpack://bio/webpack/runtime/global","webpack://bio/webpack/runtime/hasOwnProperty shorthand","webpack://bio/webpack/runtime/publicPath","webpack://bio/webpack/runtime/importScripts chunk loading","webpack://bio/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(36),\n\t\t__webpack_require__.e(413)\n\t]).then(next);\n};","import { DistanceAggregationMethods } from './types';\nexport const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1])\n return;\n const newPosition = distancesAr.findIndex((v) => num < v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\nexport function insertLarger(distancesAr, indexes, num, index) {\n if (num < distancesAr[distancesAr.length - 1])\n return;\n const newPosition = distancesAr.findIndex((v) => num > v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\nexport function getAggregationFunction(aggregationMethod, weights) {\n switch (aggregationMethod) {\n case DistanceAggregationMethods.MANHATTAN:\n return (vs) => vs.reduce((acc, val, idx) => acc + val * weights[idx], 0);\n default:\n return (vs) => {\n // euclidean\n const sum = vs.reduce((acc, val, idx) => acc + (val * weights[idx]) ** 2, 0);\n return Math.sqrt(sum);\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLDBCQUEwQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBRS9ELE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQ2hHLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztRQUN6QyxPQUFPO0lBRVQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQixXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUMvRixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTztJQUVULE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxpQkFBNEMsRUFBRSxPQUFpQjtJQUUvRCxRQUFRLGlCQUFpQixFQUFFO1FBQ3pCLEtBQUssMEJBQTBCLENBQUMsU0FBUztZQUN2QyxPQUFPLENBQUMsRUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JGO1lBQ0UsT0FBTyxDQUFDLEVBQVksRUFBRSxFQUFFO2dCQUN0QixZQUFZO2dCQUNaLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQztLQUNMO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCwgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHN9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXNOaWwgPSAoeDogYW55KSA9PiB4ID09PSBudWxsIHx8IHggPT09IHVuZGVmaW5lZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFNtYWxsZXIoZGlzdGFuY2VzQXI6IG51bWJlcltdLCBpbmRleGVzOiBudW1iZXJbXSwgbnVtOiBudW1iZXIsIGluZGV4OiBudW1iZXIpIHtcbiAgaWYgKG51bSA+IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aC0xXSlcbiAgICByZXR1cm47XG5cbiAgY29uc3QgbmV3UG9zaXRpb24gPSBkaXN0YW5jZXNBci5maW5kSW5kZXgoKHYpID0+IG51bSA8IHYpO1xuICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICBpbmRleGVzLnBvcCgpO1xuICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TGFyZ2VyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gIGlmIChudW0gPCBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGgtMV0pXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgZGlzdGFuY2VzQXIucG9wKCk7XG4gIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgaW5kZXhlcy5wb3AoKTtcbiAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oXG4gIGFnZ3JlZ2F0aW9uTWV0aG9kOiBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kLCB3ZWlnaHRzOiBudW1iZXJbXVxuKTogKHZhbHVlczogbnVtYmVyW10pID0+IG51bWJlciB7XG4gIHN3aXRjaCAoYWdncmVnYXRpb25NZXRob2QpIHtcbiAgICBjYXNlIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLk1BTkhBVFRBTjpcbiAgICAgIHJldHVybiAodnM6IG51bWJlcltdKSA9PiB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArIHZhbCAqIHdlaWdodHNbaWR4XSwgMCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAodnM6IG51bWJlcltdKSA9PiB7XG4gICAgICAgIC8vIGV1Y2xpZGVhblxuICAgICAgICBjb25zdCBzdW0gPSB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArICh2YWwgKiB3ZWlnaHRzW2lkeF0pICoqIDIsIDApO1xuICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KHN1bSk7XG4gICAgICB9O1xuICB9XG59XG4iXX0=","import { getAggregationFunction, insertSmaller, isNil } from './utils';\nimport { Measure, isBitArrayMetric } from '../typed-metrics';\nimport BitArray from '@datagrok-libraries/utils/src/bit-array';\nonmessage = async (event) => {\n const { values, startIdx, endIdx, fnNames, opts, nNeighbours, weights, aggregationMethod } = event.data;\n try {\n const knnIndexes = new Array(values[0].length).fill(null).map(() => new Array(nNeighbours).fill(-1));\n const knnDistances = new Array(values[0].length).fill(null).map(() => new Array(nNeighbours).fill(999999));\n const aggregate = getAggregationFunction(aggregationMethod, weights);\n const chunkSize = endIdx - startIdx;\n values.forEach((v, colIdx) => {\n if (isBitArrayMetric(fnNames[colIdx])) {\n for (let i = 0; i < v.length; ++i) {\n if (isNil(v[i]))\n continue;\n values[colIdx][i] = new BitArray(values[colIdx][i]._data, values[colIdx][i]._length);\n }\n }\n });\n let cnt = 0;\n const distanceFns = new Array(fnNames.length).fill(null).map((_, i) => new Measure(fnNames[i]).getMeasure(opts[i]));\n const startRow = values[0].length - 2 - Math.floor(Math.sqrt(-8 * startIdx + 4 * values[0].length * (values[0].length - 1) - 7) / 2 - 0.5);\n const startCol = startIdx - values[0].length * startRow + Math.floor((startRow + 1) * (startRow + 2) / 2);\n let mi = startRow;\n let mj = startCol;\n while (cnt < chunkSize) {\n //const value = seq1List[mi] && seq1List[mj] ? hamming(seq1List[mi], seq1List[mj]) : 0;\n const distanceValues = distanceFns.map((fn, idx) => !isNil(values[idx][mi]) && !isNil(values[idx][mj]) ?\n fn(values[idx][mi], values[idx][mj]) : 1);\n // const value = !isNil(values[mi]) && !isNil(values[mj]) ?\n // distanceFn(values[mi], values[mj]) : 1;\n const value = distanceValues.length === 1 ? distanceValues[0] : aggregate(distanceValues);\n insertSmaller(knnDistances[mi], knnIndexes[mi], value, mj);\n insertSmaller(knnDistances[mj], knnIndexes[mj], value, mi);\n cnt++;\n mj++;\n if (mj === values[0].length) {\n mi++;\n mj = mi + 1;\n }\n }\n postMessage({ knnDistances, knnIndexes });\n }\n catch (e) {\n postMessage({ error: e });\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia25uLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtubi13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDckUsT0FBTyxFQUFlLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sUUFBUSxNQUFNLHlDQUF5QyxDQUFDO0FBRy9ELFNBQVMsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDMUIsTUFBTSxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxHQUVpQixLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BILElBQUk7UUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBUyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFTLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25ILE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxRQUFR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QUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNELGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUUzRCxHQUFHLEVBQUUsQ0FBQztZQUNOLEVBQUUsRUFBRSxDQUFDO1lBQ0wsSUFBSSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDM0IsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDYjtTQUNGO1FBRUQsV0FBVyxDQUFDLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7S0FDekM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLFdBQVcsQ0FBQyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0tBQ3pCO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uLCBpbnNlcnRTbWFsbGVyLCBpc05pbH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge0tub3duTWV0cmljcywgTWVhc3VyZSwgaXNCaXRBcnJheU1ldHJpY30gZnJvbSAnLi4vdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgQml0QXJyYXkgZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYml0LWFycmF5JztcbmltcG9ydCB7RGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gZnJvbSAnLi90eXBlcyc7XG5cbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCB7dmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCBuTmVpZ2hib3Vycywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2R9OlxuICAgIHt2YWx1ZXM6IEFycmF5PGFueVtdPiwgc3RhcnRJZHg6IG51bWJlciwgZW5kSWR4OiBudW1iZXIsIGZuTmFtZXM6IEtub3duTWV0cmljc1tdLFxuICAgICAgb3B0czogYW55W10sIG5OZWlnaGJvdXJzOiBudW1iZXIsIHdlaWdodHM6IG51bWJlcltdLCBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gPSBldmVudC5kYXRhO1xuICB0cnkge1xuICAgIGNvbnN0IGtubkluZGV4ZXMgPSBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5PG51bWJlcj4obk5laWdoYm91cnMpLmZpbGwoLTEpKTtcbiAgICBjb25zdCBrbm5EaXN0YW5jZXMgPSBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5PG51bWJlcj4obk5laWdoYm91cnMpLmZpbGwoOTk5OTk5KSk7XG4gICAgY29uc3QgYWdncmVnYXRlID0gZ2V0QWdncmVnYXRpb25GdW5jdGlvbihhZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0cyk7XG4gICAgY29uc3QgY2h1bmtTaXplID0gZW5kSWR4IC0gc3RhcnRJZHg7XG4gICAgdmFsdWVzLmZvckVhY2goKHYsIGNvbElkeCkgPT4ge1xuICAgICAgaWYgKGlzQml0QXJyYXlNZXRyaWMoZm5OYW1lc1tjb2xJZHhdKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBpZiAoaXNOaWwodltpXSkpIGNvbnRpbnVlO1xuICAgICAgICAgIHZhbHVlc1tjb2xJZHhdW2ldID0gbmV3IEJpdEFycmF5KHZhbHVlc1tjb2xJZHhdW2ldLl9kYXRhLCB2YWx1ZXNbY29sSWR4XVtpXS5fbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGNvbnN0IGRpc3RhbmNlRm5zID0gbmV3IEFycmF5KGZuTmFtZXMubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgaSkgPT4gbmV3IE1lYXN1cmUoZm5OYW1lc1tpXSkuZ2V0TWVhc3VyZShvcHRzW2ldKSk7XG4gICAgY29uc3Qgc3RhcnRSb3cgPSB2YWx1ZXNbMF0ubGVuZ3RoIC0gMiAtIE1hdGguZmxvb3IoXG4gICAgICBNYXRoLnNxcnQoLTggKiBzdGFydElkeCArIDQgKiB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAtIDcpIC8gMiAtIDAuNSk7XG4gICAgY29uc3Qgc3RhcnRDb2wgPSBzdGFydElkeCAtIHZhbHVlc1swXS5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgIGxldCBtaSA9IHN0YXJ0Um93O1xuICAgIGxldCBtaiA9IHN0YXJ0Q29sO1xuICAgIHdoaWxlIChjbnQgPCBjaHVua1NpemUpIHtcbiAgICAgIC8vY29uc3QgdmFsdWUgPSBzZXExTGlzdFttaV0gJiYgc2VxMUxpc3RbbWpdID8gaGFtbWluZyhzZXExTGlzdFttaV0sIHNlcTFMaXN0W21qXSkgOiAwO1xuICAgICAgY29uc3QgZGlzdGFuY2VWYWx1ZXMgPSBkaXN0YW5jZUZucy5tYXAoKGZuLCBpZHgpID0+ICFpc05pbCh2YWx1ZXNbaWR4XVttaV0pICYmICFpc05pbCh2YWx1ZXNbaWR4XVttal0pID9cbiAgICAgICAgZm4odmFsdWVzW2lkeF1bbWldLCB2YWx1ZXNbaWR4XVttal0pIDogMSk7XG4gICAgICAvLyBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgLy8gICBkaXN0YW5jZUZuKHZhbHVlc1ttaV0sIHZhbHVlc1ttal0pIDogMTtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGlzdGFuY2VWYWx1ZXMubGVuZ3RoID09PSAxID8gZGlzdGFuY2VWYWx1ZXNbMF0gOiBhZ2dyZWdhdGUoZGlzdGFuY2VWYWx1ZXMpO1xuICAgICAgaW5zZXJ0U21hbGxlcihrbm5EaXN0YW5jZXNbbWldLCBrbm5JbmRleGVzW21pXSwgdmFsdWUsIG1qKTtcbiAgICAgIGluc2VydFNtYWxsZXIoa25uRGlzdGFuY2VzW21qXSwga25uSW5kZXhlc1ttal0sIHZhbHVlLCBtaSk7XG5cbiAgICAgIGNudCsrO1xuICAgICAgbWorKztcbiAgICAgIGlmIChtaiA9PT0gdmFsdWVzWzBdLmxlbmd0aCkge1xuICAgICAgICBtaSsrO1xuICAgICAgICBtaiA9IG1pICsgMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwb3N0TWVzc2FnZSh7a25uRGlzdGFuY2VzLCBrbm5JbmRleGVzfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBwb3N0TWVzc2FnZSh7ZXJyb3I6IGV9KTtcbiAgfVxufTtcbiJdfQ==","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [36,413], () => (__webpack_require__(1282)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t282: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkbio\"] = self[\"webpackChunkbio\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","isNil","x","insertSmaller","distancesAr","indexes","num","index","length","newPosition","findIndex","v","pop","splice","onmessage","async","event","values","startIdx","endIdx","fnNames","opts","nNeighbours","weights","aggregationMethod","data","knnIndexes","Array","fill","map","knnDistances","aggregate","MANHATTAN","vs","reduce","acc","val","idx","sum","Math","sqrt","getAggregationFunction","chunkSize","forEach","colIdx","i","_data","_length","cnt","distanceFns","_","getMeasure","startRow","floor","startCol","mi","mj","distanceValues","fn","value","postMessage","e","error","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","key","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","then"],"sourceRoot":""}
package/dist/286.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"286.js","mappings":"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","sources":["webpack://bio/./node_modules/@datagrok-libraries/bio/src/monomer-works/consts.js","webpack://bio/./node_modules/@datagrok-libraries/bio/src/utils/const.js","webpack://bio/./node_modules/@datagrok-libraries/bio/src/utils/macromolecule/types.js","webpack://bio/./node_modules/@datagrok-libraries/bio/src/utils/macromolecule/consts.js","webpack://bio/./node_modules/@datagrok-libraries/bio/src/monomer-works/to-atomic-level-utils.js","webpack://bio/./node_modules/@datagrok-libraries/bio/src/monomer-works/seq-to-molfile-worker.js"],"sourcesContent":["export const monomerWorksConsts = {\n // constants for parsing molfile V2000\n V2K_RGP_SHIFT: 8,\n V2K_RGP_LINE: 'M RGP',\n V2K_A_LINE: 'A ',\n // constants for parsing/reconstruction of molfile V3000\n V3K_COUNTS_SHIFT: 14,\n V3K_IDX_SHIFT: 7,\n V3K_HEADER_FIRST_LINE: '\\nDatagrok macromolecule handler\\n\\n',\n V3K_HEADER_SECOND_LINE: ' 0 0 0 0 0 0 999 V3000\\n',\n V3K_BEGIN_CTAB_BLOCK: 'M V30 BEGIN CTAB\\n',\n V3K_END_CTAB_BLOCK: 'M V30 END CTAB\\n',\n V3K_BEGIN_COUNTS_LINE: 'M V30 COUNTS ',\n V3K_COUNTS_LINE_ENDING: ' 0 0 0\\n',\n V3K_BEGIN_ATOM_BLOCK: 'M V30 BEGIN ATOM\\n',\n V3K_END_ATOM_BLOCK: 'M V30 END ATOM\\n',\n V3K_BEGIN_BOND_BLOCK: 'M V30 BEGIN BOND\\n',\n V3K_END_BOND_BLOCK: 'M V30 END BOND\\n',\n V3K_BOND_CONFIG: ' CFG=',\n V3K_BEGIN_DATA_LINE: 'M V30 ',\n V3K_END: 'M END',\n PRECISION_FACTOR: 10000,\n // symbols for the corresponding monomers in HELM library\n DEOXYRIBOSE: 'd',\n RIBOSE: 'r',\n PHOSPHATE: 'p',\n OXYGEN: 'O',\n HYDROGEN: 'H',\n};\n//# sourceMappingURL=consts.js.map","// core fields of HELM library object used in toAtomicLevel function\nexport const HELM_CORE_FIELDS = [\n \"symbol\" /* HELM_FIELDS.SYMBOL */,\n \"molfile\" /* HELM_FIELDS.MOLFILE */,\n \"rgroups\" /* HELM_FIELDS.RGROUPS */,\n \"name\" /* HELM_FIELDS.NAME */,\n // HELM_FIELDS.MONOMER_TYPE, // add if terminal monomers for PEPTIDEs to be\n // supported\n];\nexport const SDF_MONOMER_NAME = 'MonomerName';\n// todo: ideally, keys should be expressed via constants\nexport const jsonSdfMonomerLibDict = {\n 'monomerType': null,\n 'smiles': null,\n 'name': 'Name',\n 'author': null,\n 'molfile': 'molecule',\n 'naturalAnalog': 'MonomerNaturalAnalogCode',\n 'rgroups': 'MonomerCaps',\n 'createDate': null,\n 'id': null,\n 'polymerType': 'MonomerType',\n 'symbol': 'MonomerName'\n};\nexport const DUMMY_MONOMER = {\n 'monomerType': 'Backbone',\n 'smiles': '',\n 'name': '',\n 'author': 'Datagrok',\n 'molfile': '',\n 'naturalAnalog': '',\n 'rgroups': [],\n 'createDate': null,\n 'id': 0,\n 'polymerType': 'PEPTIDE',\n 'symbol': ''\n};\n// range of hex nubers used in PepSea library to endode monomers\nexport const MONOMER_ENCODE_MIN = 0x100;\nexport const MONOMER_ENCODE_MAX = 0x40A;\nexport const RIBOSE_SYMBOL = 'r';\nexport const DEOXYRIBOSE_SYMBOL = 'd';\nexport const PHOSPHATE_SYMBOL = 'p';\nexport const HELM_WRAPPERS_REGEXP = new RegExp(`[${RIBOSE_SYMBOL}${DEOXYRIBOSE_SYMBOL}]\\\\((\\\\w)\\\\)${PHOSPHATE_SYMBOL}?`, 'g');\n//# sourceMappingURL=const.js.map","/** Canonical gap symbol */\nexport const GAP_SYMBOL = '';\n/** Alphabet candidate type */\nexport class CandidateType {\n constructor(name, alphabet, cutoff) {\n this.name = name;\n this.alphabet = alphabet;\n this.cutoff = cutoff;\n }\n}\n/** Alphabet candidate similarity type */\nexport class CandidateSimType extends CandidateType {\n constructor(candidate, freq, similarity) {\n super(candidate.name, candidate.alphabet, candidate.cutoff);\n this.freq = freq;\n this.similarity = similarity;\n }\n}\n//# sourceMappingURL=types.js.map","import { CandidateType } from './types';\n/** enum type to simplify setting \"user-friendly\" notation if necessary */\nexport var NOTATION;\n(function (NOTATION) {\n NOTATION[\"FASTA\"] = \"fasta\";\n NOTATION[\"SEPARATOR\"] = \"separator\";\n NOTATION[\"HELM\"] = \"helm\";\n})(NOTATION || (NOTATION = {}));\nexport var ALPHABET;\n(function (ALPHABET) {\n ALPHABET[\"DNA\"] = \"DNA\";\n ALPHABET[\"RNA\"] = \"RNA\";\n ALPHABET[\"PT\"] = \"PT\";\n /** Unknown */\n ALPHABET[\"UN\"] = \"UN\";\n})(ALPHABET || (ALPHABET = {}));\nexport var TAGS;\n(function (TAGS) {\n TAGS[\"aligned\"] = \"aligned\";\n TAGS[\"alphabet\"] = \"alphabet\";\n TAGS[\"alphabetSize\"] = \".alphabetSize\";\n TAGS[\"alphabetIsMultichar\"] = \".alphabetIsMultichar\";\n TAGS[\"separator\"] = \"separator\";\n TAGS[\"isHelmCompatible\"] = \".isHelmCompatible\";\n TAGS[\"positionNames\"] = \".positionNames\";\n TAGS[\"positionLabels\"] = \".positionLabels\";\n TAGS[\"regions\"] = \".regions\";\n})(TAGS || (TAGS = {}));\nexport const positionSeparator = ', ';\nexport const monomerRe = /(?:\\[([A-Za-z0-9_\\-,()]+)\\])|([A-Za-z\\-])/g;\nexport const helmRe = /(PEPTIDE1|DNA1|RNA1)\\{([^}]+)}/g;\nexport const helmPp1Re = /\\[([^\\[\\]]+)]/g;\nexport const Alphabets = new class {\n constructor() {\n this.fasta = {\n peptide: new Set([\n 'G', 'L', 'Y', 'S', 'E', 'Q', 'D', 'N', 'F', 'A',\n 'K', 'R', 'H', 'C', 'V', 'P', 'W', 'I', 'M', 'T',\n ]),\n dna: new Set(['A', 'C', 'G', 'T']),\n rna: new Set(['A', 'C', 'G', 'U']),\n };\n }\n}();\nexport const candidateAlphabets = [\n new CandidateType(ALPHABET.PT, Alphabets.fasta.peptide, 0.50),\n new CandidateType(ALPHABET.DNA, Alphabets.fasta.dna, 0.55),\n new CandidateType(ALPHABET.RNA, Alphabets.fasta.rna, 0.55),\n];\n//# sourceMappingURL=consts.js.map","import { monomerWorksConsts as C } from './consts';\nimport { HELM_CORE_FIELDS, } from '../utils/const';\nimport { ALPHABET } from '../utils/macromolecule/consts';\n/** Get a mapping of peptide symbols to HELM monomer library objects with selected fields.\n * @param {IMonomerLib} monomerLib - Monomer library\n * @param {HELM_POLYMER_TYPE} polymerType - Polymer type\n * @param {ALPHABET} alphabet - Alphabet of the column\n * @return {Map<string, any>} - Mapping of peptide symbols to HELM monomer library objects with selected fields*/\nexport function getFormattedMonomerLib(monomerLib, polymerType, alphabet) {\n const map = new Map();\n for (const monomerSymbol of monomerLib.getMonomerSymbolsByType(polymerType)) {\n const it = monomerLib.getMonomer(polymerType, monomerSymbol);\n if (polymerType === \"RNA\" /* HELM_POLYMER_TYPE.RNA */ &&\n (it[\"monomerType\" /* HELM_FIELDS.MONOMER_TYPE */] === \"Branch\" /* HELM_MONOMER_TYPE.BRANCH */ ||\n alphabet === ALPHABET.DNA && it[\"symbol\" /* HELM_FIELDS.SYMBOL */] === C.DEOXYRIBOSE ||\n alphabet === ALPHABET.RNA && it[\"symbol\" /* HELM_FIELDS.SYMBOL */] === C.RIBOSE ||\n it[\"symbol\" /* HELM_FIELDS.SYMBOL */] === C.PHOSPHATE) ||\n polymerType === \"PEPTIDE\" /* HELM_POLYMER_TYPE.PEPTIDE */ &&\n it[\"monomerType\" /* HELM_FIELDS.MONOMER_TYPE */] !== \"Branch\" /* HELM_MONOMER_TYPE.BRANCH */) {\n const monomerObject = {};\n HELM_CORE_FIELDS.forEach((field) => {\n //@ts-ignore\n monomerObject[field] = it[field];\n });\n map.set(it[\"symbol\" /* HELM_FIELDS.SYMBOL */], monomerObject);\n }\n }\n return map;\n}\n/** Translate a sequence of monomer symbols into Molfile V3000\n * @param {string[]} monomerSeq - Sequence of monomer symbols\n * @param {Map<string, MolGraph>} monomersDict - Mapping of monomer symbols to MolGraph objects\n * @param {ALPHABET} alphabet - Alphabet of the column\n * @param {HELM_POLYMER_TYPE} polymerType - Polymer type\n * @return {string} - Molfile V3000*/\nexport function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerType) {\n if (monomerSeq.length === 0) {\n // throw new Error('monomerSeq is empty');\n return '';\n }\n // define atom and bond counts, taking into account the bond type\n const getAtomAndBondCounts = getResultingAtomBondCounts;\n const { atomCount, bondCount } = getAtomAndBondCounts(monomerSeq, monomersDict, alphabet, polymerType);\n // create arrays to store lines of the resulting molfile\n const molfileAtomBlock = new Array(atomCount);\n const molfileBondBlock = new Array(bondCount);\n let addMonomerToMolblock; // todo: types?\n let sugar = null;\n let phosphate = null;\n if (polymerType === \"PEPTIDE\" /* HELM_POLYMER_TYPE.PEPTIDE */) {\n addMonomerToMolblock = addAminoAcidToMolblock;\n }\n else { // nucleotides\n addMonomerToMolblock = addNucleotideToMolblock;\n sugar = (alphabet === ALPHABET.DNA) ? monomersDict.get(C.DEOXYRIBOSE) : monomersDict.get(C.RIBOSE);\n phosphate = monomersDict.get(C.PHOSPHATE);\n }\n const v = {\n i: 0,\n nodeShift: 0,\n bondShift: 0,\n backbonePositionShift: new Array(2).fill(0),\n branchPositionShift: new Array(2).fill(0),\n backboneAttachNode: 0,\n branchAttachNode: 0,\n flipFactor: 1,\n };\n const LC = {\n sugar: sugar,\n phosphate: phosphate,\n seqLength: monomerSeq.length,\n atomCount: atomCount,\n bondCount: bondCount,\n };\n const steabsCollection = [];\n let nAtoms = 0;\n for (v.i = 0; v.i < LC.seqLength; ++v.i) {\n const monomer = monomersDict.get(monomerSeq[v.i]);\n addMonomerToMolblock(monomer, molfileAtomBlock, molfileBondBlock, v, LC);\n //adding stereo atoms to array for further STEABS block generation\n monomer.stereoAtoms?.forEach((i) => steabsCollection.push(i + nAtoms));\n nAtoms += monomer.atoms.x.length;\n }\n capResultingMolblock(molfileAtomBlock, molfileBondBlock, v, LC);\n const molfileCountsLine = C.V3K_BEGIN_COUNTS_LINE + atomCount + ' ' + bondCount + C.V3K_COUNTS_LINE_ENDING;\n // todo: possible optimization may be achieved by replacing .join('') with +=\n // since counterintuitively joining an array into a new string is reportedly\n // slower than using += as below\n let result = '';\n result += C.V3K_HEADER_FIRST_LINE;\n result += C.V3K_HEADER_SECOND_LINE;\n result += C.V3K_BEGIN_CTAB_BLOCK;\n result += molfileCountsLine;\n result += C.V3K_BEGIN_ATOM_BLOCK;\n result += molfileAtomBlock.join('');\n result += C.V3K_END_ATOM_BLOCK;\n result += C.V3K_BEGIN_BOND_BLOCK;\n result += molfileBondBlock.join('');\n result += C.V3K_END_BOND_BLOCK;\n if (steabsCollection.length > 0)\n result += getCollectionBlock(steabsCollection);\n result += C.V3K_END_CTAB_BLOCK;\n result += C.V3K_END;\n // return molfileParts.join('');\n return result;\n}\nfunction getCollectionBlock(collection) {\n //one row in STEABS block can be no longer than 80 symbols\n //maxSymbols = 80 symbols minus ' -\\n' (4 symbols)\n const maxSymbols = 76;\n const rowsArray = [];\n let newCollectionRow = `M V30 MDLV30/STEABS ATOMS=(${collection.length}`;\n for (let i = 0; i < collection.length; i++) {\n const updatedRow = `${newCollectionRow} ${collection[i]}`;\n if (updatedRow.length > maxSymbols) {\n rowsArray.push(`${newCollectionRow} -\\n`);\n newCollectionRow = `M V30 ${collection[i]}`;\n }\n else\n newCollectionRow = updatedRow;\n //in case last atom was added - close the block\n if (i === collection.length - 1)\n rowsArray.push(`${newCollectionRow})\\n`);\n }\n return `M V30 BEGIN COLLECTION\\n${rowsArray.join('')}M V30 END COLLECTION\\n`;\n}\n/** Cap the resulting (after sewing up all the monomers) molfile with 'O'\n * @param {string[]} molfileAtomBlock - Array of lines of the resulting molfile atom block\n * @param {string[]} molfileBondBlock - Array of lines of the resulting molfile bond block\n * @param {LoopVariables} v - Loop variables\n * @param {LoopConstants} LC - Loop constants*/\nfunction capResultingMolblock(molfileAtomBlock, molfileBondBlock, v, LC) {\n // add terminal oxygen\n const atomIdx = v.nodeShift + 1;\n molfileAtomBlock[LC.atomCount] = C.V3K_BEGIN_DATA_LINE + atomIdx + ' ' +\n C.OXYGEN + ' ' + keepPrecision(v.backbonePositionShift[0]) + ' ' +\n v.flipFactor * keepPrecision(v.backbonePositionShift[1]) + ' ' + '0.000000 0' + '\\n';\n // add terminal bond\n const firstAtom = v.backboneAttachNode;\n const secondAtom = atomIdx;\n molfileBondBlock[LC.bondCount] = C.V3K_BEGIN_DATA_LINE + v.bondShift + ' ' +\n 1 + ' ' + firstAtom + ' ' + secondAtom + '\\n';\n}\nfunction addAminoAcidToMolblock(monomer, molfileAtomBlock, molfileBondBlock, v) {\n v.flipFactor = (-1) ** (v.i % 2); // to flip every even monomer over OX\n addBackboneMonomerToMolblock(monomer, molfileAtomBlock, molfileBondBlock, v);\n}\nfunction addBackboneMonomerToMolblock(monomer, molfileAtomBlock, molfileBondBlock, v) {\n // todo: remove these comments to the docstrings of the corr. functions\n // construnct the lines of V3K molfile atom block\n fillAtomLines(monomer, molfileAtomBlock, v);\n // construct the lines of V3K molfile bond block\n fillBondLines(monomer, molfileBondBlock, v);\n // peptide bond\n fillChainExtendingBond(monomer, molfileBondBlock, v);\n // update branch variables if necessary\n if (monomer.meta.branchShift !== null && monomer.meta.terminalNodes.length > 2)\n updateBranchVariables(monomer, v);\n // update loop variables\n updateChainExtendingVariables(monomer, v);\n}\nfunction addNucleotideToMolblock(nucleobase, molfileAtomBlock, molfileBondBlock, v, LC) {\n // construnct the lines of V3K molfile atom block corresponding to phosphate\n // and sugar\n if (v.i === 0) {\n addBackboneMonomerToMolblock(LC.sugar, molfileAtomBlock, molfileBondBlock, v);\n }\n else {\n for (const monomer of [LC.phosphate, LC.sugar])\n addBackboneMonomerToMolblock(monomer, molfileAtomBlock, molfileBondBlock, v);\n }\n addBranchMonomerToMolblock(nucleobase, molfileAtomBlock, molfileBondBlock, v);\n}\nfunction addBranchMonomerToMolblock(monomer, molfileAtomBlock, molfileBondBlock, v) {\n fillBranchAtomLines(monomer, molfileAtomBlock, v);\n fillBondLines(monomer, molfileBondBlock, v);\n fillBackboneToBranchBond(monomer, molfileBondBlock, v);\n // C-N bond\n const bondIdx = v.bondShift;\n const firstAtom = v.branchAttachNode;\n const secondAtom = monomer.meta.terminalNodes[0] + v.nodeShift;\n molfileBondBlock[bondIdx - 1] = C.V3K_BEGIN_DATA_LINE + bondIdx + ' ' +\n 1 + ' ' + firstAtom + ' ' + secondAtom + '\\n';\n // update loop variables\n v.bondShift += monomer.bonds.atomPairs.length + 1;\n v.nodeShift += monomer.atoms.atomTypes.length;\n}\nfunction updateChainExtendingVariables(monomer, v) {\n v.backboneAttachNode = v.nodeShift + monomer.meta.terminalNodes[1];\n v.bondShift += monomer.bonds.atomPairs.length + 1;\n v.nodeShift += monomer.atoms.atomTypes.length;\n v.backbonePositionShift[0] += monomer.meta.backboneShift[0]; // todo: non-null check\n v.backbonePositionShift[1] += v.flipFactor * monomer.meta.backboneShift[1];\n}\nfunction updateBranchVariables(monomer, v) {\n v.branchAttachNode = v.nodeShift + monomer.meta.terminalNodes[2];\n for (let i = 0; i < 2; ++i)\n v.branchPositionShift[i] = v.backbonePositionShift[i] + monomer.meta.branchShift[i];\n}\nfunction fillAtomLines(monomer, molfileAtomBlock, v) {\n for (let j = 0; j < monomer.atoms.atomTypes.length; ++j) {\n const atomIdx = v.nodeShift + j + 1;\n molfileAtomBlock[v.nodeShift + j] = C.V3K_BEGIN_DATA_LINE + atomIdx + ' ' +\n monomer.atoms.atomTypes[j] + ' ' +\n keepPrecision(v.backbonePositionShift[0] + monomer.atoms.x[j]) + ' ' +\n keepPrecision(v.backbonePositionShift[1] + v.flipFactor * monomer.atoms.y[j]) +\n ' ' + monomer.atoms.kwargs[j];\n }\n}\n// todo: remove as quickfix\nfunction fillBranchAtomLines(monomer, molfileAtomBlock, v) {\n for (let j = 0; j < monomer.atoms.atomTypes.length; ++j) {\n const atomIdx = v.nodeShift + j + 1;\n molfileAtomBlock[v.nodeShift + j] = C.V3K_BEGIN_DATA_LINE + atomIdx + ' ' +\n monomer.atoms.atomTypes[j] + ' ' +\n keepPrecision(v.branchPositionShift[0] + monomer.atoms.x[j]) + ' ' +\n keepPrecision(v.branchPositionShift[1] + v.flipFactor * monomer.atoms.y[j]) +\n ' ' + monomer.atoms.kwargs[j];\n }\n}\nfunction fillBondLines(monomer, molfileBondBlock, v) {\n // construct the lines of V3K molfile bond block\n for (let j = 0; j < monomer.bonds.atomPairs.length; ++j) {\n const bondIdx = v.bondShift + j + 1;\n const firstAtom = monomer.bonds.atomPairs[j][0] + v.nodeShift;\n const secondAtom = monomer.bonds.atomPairs[j][1] + v.nodeShift;\n let bondCfg = '';\n if (monomer.bonds.bondConfiguration.has(j)) {\n // flip orientation when necessary\n let orientation = monomer.bonds.bondConfiguration.get(j);\n if (v.flipFactor < 0)\n orientation = (orientation === 1) ? 3 : 1;\n bondCfg = ' CFG=' + orientation;\n }\n const kwargs = monomer.bonds.kwargs.has(j) ?\n ' ' + monomer.bonds.kwargs.get(j) : '';\n molfileBondBlock[v.bondShift + j] = C.V3K_BEGIN_DATA_LINE + bondIdx + ' ' +\n monomer.bonds.bondTypes[j] + ' ' +\n firstAtom + ' ' + secondAtom + bondCfg + kwargs + '\\n';\n }\n}\nfunction fillChainExtendingBond(monomer, molfileBondBlock, v) {\n if (v.backboneAttachNode !== 0) {\n const bondIdx = v.bondShift;\n const firstAtom = v.backboneAttachNode;\n const secondAtom = monomer.meta.terminalNodes[0] + v.nodeShift;\n molfileBondBlock[v.bondShift - 1] = C.V3K_BEGIN_DATA_LINE + bondIdx + ' ' +\n 1 + ' ' + firstAtom + ' ' + secondAtom + '\\n';\n }\n}\n// todo: remove\nfunction fillBackboneToBranchBond(branchMonomer, molfileBondBlock, v) {\n const bondIdx = v.bondShift;\n const firstAtom = v.branchAttachNode;\n const secondAtom = branchMonomer.meta.terminalNodes[0] + v.nodeShift;\n molfileBondBlock[bondIdx - 1] = C.V3K_BEGIN_DATA_LINE + bondIdx + ' ' +\n 1 + ' ' + firstAtom + ' ' + secondAtom + '\\n';\n}\n/** Compute the atom/bond counts for the resulting molfile, depending on the\n * type of polymer (peptide/nucleotide)\n * @param {string[]}monomerSeq - the sequence of monomers\n * @param {Map<string, MolGraph>}monomersDict - the dictionary of monomers\n * @param {ALPHABET}alphabet - the alphabet of the monomers\n * @param {HELM_POLYMER_TYPE}polymerType - the type of polymer\n * @return {{atomCount: number, bondCount: number}} - the atom/bond counts*/\nfunction getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerType) {\n let atomCount = 0;\n let bondCount = 0;\n // sum up all the atoms/nodes provided by the sequence\n for (const monomerSymbol of monomerSeq) {\n if (monomerSymbol === '')\n continue; // Skip for gap/empty monomer in MSA\n const monomer = monomersDict.get(monomerSymbol);\n atomCount += monomer.atoms.x.length;\n bondCount += monomer.bonds.bondTypes.length;\n }\n // add extra values depending on the polymer type\n if (polymerType === \"PEPTIDE\" /* HELM_POLYMER_TYPE.PEPTIDE */) {\n // add the rightmost/terminating cap group 'OH' (i.e. 'O')\n atomCount += 1;\n // add chain-extending bonds (C-NH per each monomer pair and terminal C-OH)\n bondCount += monomerSeq.length;\n }\n else { // nucleotides\n const sugar = (alphabet === ALPHABET.DNA) ?\n monomersDict.get(C.DEOXYRIBOSE) : monomersDict.get(C.RIBOSE);\n const phosphate = monomersDict.get(C.PHOSPHATE);\n // add phosphate per each pair of nucleobase symbols\n atomCount += (monomerSeq.length - 1) * phosphate.atoms.x.length;\n // add sugar per each nucleobase symbol\n atomCount += monomerSeq.length * sugar.atoms.x.length;\n // add the leftmost cap group 'OH' (i.e. 'O')\n atomCount += 1;\n // add bonds from phosphate monomers\n bondCount += (monomerSeq.length - 1) * phosphate.bonds.bondTypes.length;\n // add bonds from sugar monomers\n bondCount += monomerSeq.length * sugar.bonds.bondTypes.length;\n // exclude the first chain-extending bond O-P (absent, no 'leftmost' phosphate)\n bondCount -= 1;\n // add chain-extending and branch bonds (O-P, C-O and C-N per each nucleotide)\n bondCount += monomerSeq.length * 3;\n }\n return { atomCount, bondCount };\n}\n/** Keep precision upon floating point operations over atom coordinates\n * @param {number}x - the floating point number\n * @return {number} - the floating point number with the same precision\n*/\nexport function keepPrecision(x) {\n return Math.round(C.PRECISION_FACTOR * x) / C.PRECISION_FACTOR;\n}\n//# sourceMappingURL=to-atomic-level-utils.js.map","import { monomerSeqToMolfile } from './to-atomic-level-utils';\nonmessage = (event) => {\n const { monomerSequencesArray, monomersDict, alphabet, polymerType, start, end } = event.data;\n const molfileList = new Array(end - start);\n const molfileWarningList = new Array(0);\n for (let rowI = start; rowI < end; ++rowI) {\n try {\n const monomerSeq = monomerSequencesArray[rowI];\n molfileList[rowI - start] = monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerType);\n }\n catch (err) {\n const errMsg = err instanceof Error ? err.message : err.toString();\n const msg = `Cannot get molfile of row #${rowI}: ${errMsg}.`;\n molfileWarningList.push(msg);\n }\n }\n postMessage({ molfileList, molfileWarningList });\n};\n//# sourceMappingURL=seq-to-molfile-worker.js.map"],"names":["monomerWorksConsts","V2K_RGP_SHIFT","V2K_RGP_LINE","V2K_A_LINE","V3K_COUNTS_SHIFT","V3K_IDX_SHIFT","V3K_HEADER_FIRST_LINE","V3K_HEADER_SECOND_LINE","V3K_BEGIN_CTAB_BLOCK","V3K_END_CTAB_BLOCK","V3K_BEGIN_COUNTS_LINE","V3K_COUNTS_LINE_ENDING","V3K_BEGIN_ATOM_BLOCK","V3K_END_ATOM_BLOCK","V3K_BEGIN_BOND_BLOCK","V3K_END_BOND_BLOCK","V3K_BOND_CONFIG","V3K_BEGIN_DATA_LINE","V3K_END","PRECISION_FACTOR","DEOXYRIBOSE","RIBOSE","PHOSPHATE","OXYGEN","HYDROGEN","RegExp","CandidateType","constructor","name","alphabet","cutoff","this","NOTATION","TAGS","ALPHABET","Alphabets","fasta","peptide","Set","dna","rna","monomerSeqToMolfile","monomerSeq","monomersDict","polymerType","length","getAtomAndBondCounts","getResultingAtomBondCounts","atomCount","bondCount","molfileAtomBlock","Array","molfileBondBlock","addMonomerToMolblock","sugar","phosphate","addAminoAcidToMolblock","addNucleotideToMolblock","DNA","get","v","i","nodeShift","bondShift","backbonePositionShift","fill","branchPositionShift","backboneAttachNode","branchAttachNode","flipFactor","LC","seqLength","steabsCollection","nAtoms","monomer","stereoAtoms","forEach","push","atoms","x","atomIdx","keepPrecision","firstAtom","secondAtom","capResultingMolblock","molfileCountsLine","result","join","collection","rowsArray","newCollectionRow","updatedRow","getCollectionBlock","addBackboneMonomerToMolblock","j","atomTypes","y","kwargs","fillAtomLines","fillBondLines","bondIdx","meta","terminalNodes","fillChainExtendingBond","branchShift","updateBranchVariables","bonds","atomPairs","backboneShift","updateChainExtendingVariables","nucleobase","fillBranchAtomLines","branchMonomer","fillBackboneToBranchBond","addBranchMonomerToMolblock","bondCfg","bondConfiguration","has","orientation","bondTypes","monomerSymbol","Math","round","PT","RNA","onmessage","event","monomerSequencesArray","start","end","data","molfileList","molfileWarningList","rowI","err","msg","Error","message","toString","postMessage"],"sourceRoot":""}
package/dist/356.js DELETED
@@ -1,2 +0,0 @@
1
- var bio;(()=>{"use strict";var t,e={6138:(t,e,r)=>{r.d(e,{W:()=>i}),t=r.hmd(t);var n,i=(n="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(t={}){var e,r,i=void 0!==t?t:{};i.ready=new Promise((function(t,n){e=t,r=n}));var o,a=Object.assign({},i),s="object"==typeof window,u="function"==typeof importScripts,c=("object"==typeof process&&"object"==typeof process.versions&&process.versions.node,"");(s||u)&&(u?c=self.location.href:"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),n&&(c=n),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(o=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)})),i.print||console.log.bind(console);var f,l,p=i.printErr||console.warn.bind(console);Object.assign(i,a),a=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(f=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&R("no native wasm support detected");var h,d,m,y=!1;function b(){var t=l.buffer;i.HEAP8=h=new Int8Array(t),i.HEAP16=new Int16Array(t),i.HEAP32=new Int32Array(t),i.HEAPU8=d=new Uint8Array(t),i.HEAPU16=new Uint16Array(t),i.HEAPU32=m=new Uint32Array(t),i.HEAPF32=new Float32Array(t),i.HEAPF64=new Float64Array(t)}var g=[],w=[],v=[],A=0,_=null,E=null;function R(t){i.onAbort&&i.onAbort(t),p(t="Aborted("+t+")"),y=!0,t+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(t);throw r(e),e}var x,P,S="data:application/octet-stream;base64,";function j(t){return t.startsWith(S)}function O(t){try{if(t==x&&f)return new Uint8Array(f);if(o)return o(t);throw"both async and sync fetching of the wasm failed"}catch(t){R(t)}}function U(t,e,r){return function(t){return f||!s&&!u||"function"!=typeof fetch?Promise.resolve().then((function(){return O(t)})):fetch(t,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+t+"'";return e.arrayBuffer()})).catch((function(){return O(t)}))}(t).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(t){return t})).then(r,(function(t){p("failed to asynchronously prepare wasm: "+t),R(t)}))}function I(t){for(;t.length>0;)t.shift()(i)}function T(t){this.excPtr=t,this.ptr=t-24,this.set_type=function(t){m[this.ptr+4>>2]=t},this.get_type=function(){return m[this.ptr+4>>2]},this.set_destructor=function(t){m[this.ptr+8>>2]=t},this.get_destructor=function(){return m[this.ptr+8>>2]},this.set_caught=function(t){t=t?1:0,h[this.ptr+12>>0]=t},this.get_caught=function(){return 0!=h[this.ptr+12>>0]},this.set_rethrown=function(t){t=t?1:0,h[this.ptr+13>>0]=t},this.get_rethrown=function(){return 0!=h[this.ptr+13>>0]},this.init=function(t,e){this.set_adjusted_ptr(0),this.set_type(t),this.set_destructor(e)},this.set_adjusted_ptr=function(t){m[this.ptr+16>>2]=t},this.get_adjusted_ptr=function(){return m[this.ptr+16>>2]},this.get_exception_ptr=function(){if(N(this.get_type()))return m[this.excPtr>>2];var t=this.get_adjusted_ptr();return 0!==t?t:this.excPtr}}function C(t){var e=l.buffer;try{return l.grow(t-e.byteLength+65535>>>16),b(),1}catch(t){}}function M(t){return i["_"+t]}j(x="wasmCluster.wasm")||(P=x,x=i.locateFile?i.locateFile(P,c):c+P);var W="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function F(t,e,r,n,i){var o={string:t=>{var e=0;return null!=t&&0!==t&&(e=function(t){var e=function(t){for(var e=0,r=0;r<t.length;++r){var n=t.charCodeAt(r);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++r):e+=3}return e}(t)+1,r=L(e);return function(t,e,r){!function(t,e,r,n){if(!(n>0))return 0;for(var i=r+n-1,o=0;o<t.length;++o){var a=t.charCodeAt(o);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&t.charCodeAt(++o)),a<=127){if(r>=i)break;e[r++]=a}else if(a<=2047){if(r+1>=i)break;e[r++]=192|a>>6,e[r++]=128|63&a}else if(a<=65535){if(r+2>=i)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|63&a}else{if(r+3>=i)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|63&a}}e[r]=0}(t,d,e,r)}(t,r,e),r}(t)),e},array:t=>{var e,r,n=L(t.length);return e=t,r=n,h.set(e,r),n}},a=M(t),s=[],u=0;if(n)for(var c=0;c<n.length;c++){var f=o[r[c]];f?(0===u&&(u=D()),s[c]=f(n[c])):s[c]=n[c]}var l=a.apply(null,s);return function(t){return 0!==u&&k(u),function(t){return"string"===e?(r=t)?function(t,e,r){for(var n=e+r,i=e;t[i]&&!(i>=n);)++i;if(i-e>16&&t.buffer&&W)return W.decode(t.subarray(e,i));for(var o="";e<i;){var a=t[e++];if(128&a){var s=63&t[e++];if(192!=(224&a)){var u=63&t[e++];if((a=224==(240&a)?(15&a)<<12|s<<6|u:(7&a)<<18|s<<12|u<<6|63&t[e++])<65536)o+=String.fromCharCode(a);else{var c=a-65536;o+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o}(d,r,n):"":"boolean"===e?Boolean(t):t;var r,n}(t)}(l)}var H,B={d:function(t,e,r){throw new T(t).init(e,r),t},a:function(){R("")},c:function(t,e,r){d.copyWithin(t,e,e+r)},b:function(t){var e,r=d.length,n=2147483648;if((t>>>=0)>n)return!1;for(var i=1;i<=4;i*=2){var o=r*(1+.2/i);if(o=Math.min(o,t+100663296),C(Math.min(n,(e=Math.max(t,o))+(65536-e%65536)%65536)))return!0}return!1}},D=(function(){var t,e,n,o,a={a:B};function s(t,e){var r,n=t.exports;return i.asm=n,l=i.asm.e,b(),i.asm.i,r=i.asm.f,w.unshift(r),function(t){if(A--,i.monitorRunDependencies&&i.monitorRunDependencies(A),0==A&&(null!==_&&(clearInterval(_),_=null),E)){var e=E;E=null,e()}}(),n}if(A++,i.monitorRunDependencies&&i.monitorRunDependencies(A),i.instantiateWasm)try{return i.instantiateWasm(a,s)}catch(t){p("Module.instantiateWasm callback failed with error: "+t),r(t)}(t=f,e=x,n=a,o=function(t){s(t.instance)},t||"function"!=typeof WebAssembly.instantiateStreaming||j(e)||"function"!=typeof fetch?U(e,n,o):fetch(e,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,n).then(o,(function(t){return p("wasm streaming compile failed: "+t),p("falling back to ArrayBuffer instantiation"),U(e,n,o)}))}))).catch(r)}(),i._getDendrogram=function(){return(i._getDendrogram=i.asm.g).apply(null,arguments)},i._free=function(){return(i._free=i.asm.h).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm.j).apply(null,arguments)},function(){return(D=i.asm.k).apply(null,arguments)}),k=function(){return(k=i.asm.l).apply(null,arguments)},L=function(){return(L=i.asm.m).apply(null,arguments)},N=function(){return(N=i.asm.n).apply(null,arguments)};function q(){function t(){H||(H=!0,i.calledRun=!0,y||(I(w),e(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)t=i.postRun.shift(),v.unshift(t);var t;I(v)}()))}A>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)t=i.preRun.shift(),g.unshift(t);var t;I(g)}(),A>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),t()}),1)):t()))}if(i.ccall=F,i.cwrap=function(t,e,r,n){var i=!r||r.every((t=>"number"===t||"boolean"===t));return"string"!==e&&i&&!n?M(t):function(){return F(t,e,r,arguments)}},E=function t(){H||q(),H||(E=t)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return q(),t.ready});"object"==typeof exports?t.exports=i:"function"==typeof define&&r.amdO?define([],(function(){return i})):"object"==typeof exports&&(exports.exportCppLib=i)},5063:(t,e,r)=>{t.exports=r.p+"8473fcbfb6e85ca6c852.wasm"}},r={};function n(t){var i=r[t];if(void 0!==i)return i.exports;var o=r[t]={id:t,loaded:!1,exports:{}};return e[t](o,o.exports,n),o.loaded=!0,o.exports}n.m=e,n.amdO={},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.hmd=t=>((t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&!t;)t=r[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),n.b=self.location+"",t=n(6138),onmessage=e=>{const{distMatArray:r,n:i,methodCode:o}=e.data,a={};try{(async function(e,r,i){const o=new URL(n(5063),n.b).href,a=o.substring(0,o.lastIndexOf("/")+1)+"wasmCluster.wasm";let s;try{s=await(0,t.W)({locateFile:()=>a,printErr:t=>{}})}catch(e){try{s=await(0,t.W)({locateFile:()=>o,printErr:t=>{}})}catch(t){throw console.error(t),new Error("Unable to load wasm file for hierarchical clustering")}}const u=s.cwrap("getDendrogram","null",["number","number","number","number","number"]),c=Float32Array.BYTES_PER_ELEMENT*e.length,f=s._malloc(c),l=new Uint8Array(s.HEAPU8.buffer,f,c);l.set(new Uint8Array(e.buffer));const p=Int32Array.BYTES_PER_ELEMENT*(r-1)*2,h=s._malloc(p),d=new Uint8Array(s.HEAPU8.buffer,h,p),m=Float32Array.BYTES_PER_ELEMENT*(r-1),y=s._malloc(m),b=new Uint8Array(s.HEAPU8.buffer,y,m);u(f,r,i,h,y);const g=new Int32Array(d.buffer,d.byteOffset,2*(r-1)),w=new Float32Array(b.buffer,b.byteOffset,r-1).slice(0,r-1),v=g.slice(0,r-1),A=g.slice(r-1,2*r-2);return s._free(l.byteOffset),s._free(d.byteOffset),s._free(b.byteOffset),{mergeRow1:v,mergeRow2:A,heightsResult:w}})(r,i,o).then((t=>{a.clusterMatrix=t,postMessage(a)}))}catch(t){a.error=t,postMessage(a)}},bio={}})();
2
- //# sourceMappingURL=356.js.map
package/dist/356.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"356.js","mappings":"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","sources":["webpack://bio/./node_modules/@datagrok-libraries/math/src/hierarchical-clustering/wasm/wasmCluster.js","webpack://bio/webpack/bootstrap","webpack://bio/webpack/runtime/amd options","webpack://bio/webpack/runtime/define property getters","webpack://bio/webpack/runtime/global","webpack://bio/webpack/runtime/harmony module decorator","webpack://bio/webpack/runtime/hasOwnProperty shorthand","webpack://bio/webpack/runtime/publicPath","webpack://bio/webpack/runtime/importScripts chunk loading","webpack://bio/./node_modules/@datagrok-libraries/math/src/hierarchical-clustering/wasm/clustering-worker.js","webpack://bio/./node_modules/@datagrok-libraries/math/src/hierarchical-clustering/wasm/clusterizerWasm.js"],"sourcesContent":["export var exportCppLib = (() => {\n var _scriptDir =\n typeof document !== \"undefined\" && document.currentScript\n ? document.currentScript.src\n : undefined;\n\n return function (exportCppLib = {}) {\n var Module = typeof exportCppLib != \"undefined\" ? exportCppLib : {};\n var readyPromiseResolve, readyPromiseReject;\n Module[\"ready\"] = new Promise(function (resolve, reject) {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject;\n });\n var moduleOverrides = Object.assign({}, Module);\n var arguments_ = [];\n var thisProgram = \"./this.program\";\n var quit_ = (status, toThrow) => {\n throw toThrow;\n };\n var ENVIRONMENT_IS_WEB = typeof window == \"object\";\n var ENVIRONMENT_IS_WORKER = typeof importScripts == \"function\";\n var ENVIRONMENT_IS_NODE =\n typeof process == \"object\" &&\n typeof process.versions == \"object\" &&\n typeof process.versions.node == \"string\";\n var scriptDirectory = \"\";\n function locateFile(path) {\n if (Module[\"locateFile\"]) {\n return Module[\"locateFile\"](path, scriptDirectory);\n }\n return scriptDirectory + path;\n }\n var read_, readAsync, readBinary, setWindowTitle;\n if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n } else if (typeof document != \"undefined\" && document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n if (_scriptDir) {\n scriptDirectory = _scriptDir;\n }\n if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n scriptDirectory = scriptDirectory.substr(\n 0,\n scriptDirectory.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1\n );\n } else {\n scriptDirectory = \"\";\n }\n {\n read_ = (url) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = (url) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = (url, onload, onerror) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = () => {\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) {\n onload(xhr.response);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = (title) => (document.title = title);\n } else {\n }\n var out = Module[\"print\"] || console.log.bind(console);\n var err = Module[\"printErr\"] || console.warn.bind(console);\n Object.assign(Module, moduleOverrides);\n moduleOverrides = null;\n if (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n if (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n if (Module[\"quit\"]) quit_ = Module[\"quit\"];\n var wasmBinary;\n if (Module[\"wasmBinary\"]) wasmBinary = Module[\"wasmBinary\"];\n var noExitRuntime = Module[\"noExitRuntime\"] || true;\n if (typeof WebAssembly != \"object\") {\n abort(\"no native wasm support detected\");\n }\n var wasmMemory;\n var ABORT = false;\n var EXITSTATUS;\n var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n function updateMemoryViews() {\n var b = wasmMemory.buffer;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(b);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(b);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(b);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(b);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(b);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(b);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(b);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(b);\n }\n var wasmTable;\n var __ATPRERUN__ = [];\n var __ATINIT__ = [];\n var __ATPOSTRUN__ = [];\n var runtimeInitialized = false;\n function preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\")\n Module[\"preRun\"] = [Module[\"preRun\"]];\n while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n }\n function initRuntime() {\n runtimeInitialized = true;\n callRuntimeCallbacks(__ATINIT__);\n }\n function postRun() {\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\")\n Module[\"postRun\"] = [Module[\"postRun\"]];\n while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }\n function addOnInit(cb) {\n __ATINIT__.unshift(cb);\n }\n function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n }\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null;\n function addRunDependency(id) {\n runDependencies++;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n }\n function removeRunDependency(id) {\n runDependencies--;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n }\n function abort(what) {\n if (Module[\"onAbort\"]) {\n Module[\"onAbort\"](what);\n }\n what = \"Aborted(\" + what + \")\";\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n what += \". Build with -sASSERTIONS for more info.\";\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject(e);\n throw e;\n }\n var dataURIPrefix = \"data:application/octet-stream;base64,\";\n function isDataURI(filename) {\n return filename.startsWith(dataURIPrefix);\n }\n var wasmBinaryFile;\n wasmBinaryFile = \"wasmCluster.wasm\";\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n function getBinary(file) {\n try {\n if (file == wasmBinaryFile && wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n if (readBinary) {\n return readBinary(file);\n }\n throw \"both async and sync fetching of the wasm failed\";\n } catch (err) {\n abort(err);\n }\n }\n function getBinaryPromise(binaryFile) {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n if (typeof fetch == \"function\") {\n return fetch(binaryFile, { credentials: \"same-origin\" })\n .then(function (response) {\n if (!response[\"ok\"]) {\n throw \"failed to load wasm binary file at '\" + binaryFile + \"'\";\n }\n return response[\"arrayBuffer\"]();\n })\n .catch(function () {\n return getBinary(binaryFile);\n });\n }\n }\n return Promise.resolve().then(function () {\n return getBinary(binaryFile);\n });\n }\n function instantiateArrayBuffer(binaryFile, imports, receiver) {\n return getBinaryPromise(binaryFile)\n .then(function (binary) {\n return WebAssembly.instantiate(binary, imports);\n })\n .then(function (instance) {\n return instance;\n })\n .then(receiver, function (reason) {\n err(\"failed to asynchronously prepare wasm: \" + reason);\n abort(reason);\n });\n }\n function instantiateAsync(binary, binaryFile, imports, callback) {\n if (\n !binary &&\n typeof WebAssembly.instantiateStreaming == \"function\" &&\n !isDataURI(binaryFile) &&\n typeof fetch == \"function\"\n ) {\n return fetch(binaryFile, { credentials: \"same-origin\" }).then(function (\n response\n ) {\n var result = WebAssembly.instantiateStreaming(response, imports);\n return result.then(callback, function (reason) {\n err(\"wasm streaming compile failed: \" + reason);\n err(\"falling back to ArrayBuffer instantiation\");\n return instantiateArrayBuffer(binaryFile, imports, callback);\n });\n });\n } else {\n return instantiateArrayBuffer(binaryFile, imports, callback);\n }\n }\n function createWasm() {\n var info = { a: wasmImports };\n function receiveInstance(instance, module) {\n var exports = instance.exports;\n Module[\"asm\"] = exports;\n wasmMemory = Module[\"asm\"][\"e\"];\n updateMemoryViews();\n wasmTable = Module[\"asm\"][\"i\"];\n addOnInit(Module[\"asm\"][\"f\"]);\n removeRunDependency(\"wasm-instantiate\");\n return exports;\n }\n addRunDependency(\"wasm-instantiate\");\n function receiveInstantiationResult(result) {\n receiveInstance(result[\"instance\"]);\n }\n if (Module[\"instantiateWasm\"]) {\n try {\n return Module[\"instantiateWasm\"](info, receiveInstance);\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n readyPromiseReject(e);\n }\n }\n instantiateAsync(\n wasmBinary,\n wasmBinaryFile,\n info,\n receiveInstantiationResult\n ).catch(readyPromiseReject);\n return {};\n }\n function callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n callbacks.shift()(Module);\n }\n }\n function ExceptionInfo(excPtr) {\n this.excPtr = excPtr;\n this.ptr = excPtr - 24;\n this.set_type = function (type) {\n HEAPU32[(this.ptr + 4) >> 2] = type;\n };\n this.get_type = function () {\n return HEAPU32[(this.ptr + 4) >> 2];\n };\n this.set_destructor = function (destructor) {\n HEAPU32[(this.ptr + 8) >> 2] = destructor;\n };\n this.get_destructor = function () {\n return HEAPU32[(this.ptr + 8) >> 2];\n };\n this.set_caught = function (caught) {\n caught = caught ? 1 : 0;\n HEAP8[(this.ptr + 12) >> 0] = caught;\n };\n this.get_caught = function () {\n return HEAP8[(this.ptr + 12) >> 0] != 0;\n };\n this.set_rethrown = function (rethrown) {\n rethrown = rethrown ? 1 : 0;\n HEAP8[(this.ptr + 13) >> 0] = rethrown;\n };\n this.get_rethrown = function () {\n return HEAP8[(this.ptr + 13) >> 0] != 0;\n };\n this.init = function (type, destructor) {\n this.set_adjusted_ptr(0);\n this.set_type(type);\n this.set_destructor(destructor);\n };\n this.set_adjusted_ptr = function (adjustedPtr) {\n HEAPU32[(this.ptr + 16) >> 2] = adjustedPtr;\n };\n this.get_adjusted_ptr = function () {\n return HEAPU32[(this.ptr + 16) >> 2];\n };\n this.get_exception_ptr = function () {\n var isPointer = ___cxa_is_pointer_type(this.get_type());\n if (isPointer) {\n return HEAPU32[this.excPtr >> 2];\n }\n var adjusted = this.get_adjusted_ptr();\n if (adjusted !== 0) return adjusted;\n return this.excPtr;\n };\n }\n var exceptionLast = 0;\n var uncaughtExceptionCount = 0;\n function ___cxa_throw(ptr, type, destructor) {\n var info = new ExceptionInfo(ptr);\n info.init(type, destructor);\n exceptionLast = ptr;\n uncaughtExceptionCount++;\n throw exceptionLast;\n }\n function _abort() {\n abort(\"\");\n }\n function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.copyWithin(dest, src, src + num);\n }\n function getHeapMax() {\n return 2147483648;\n }\n function emscripten_realloc_buffer(size) {\n var b = wasmMemory.buffer;\n try {\n wasmMemory.grow((size - b.byteLength + 65535) >>> 16);\n updateMemoryViews();\n return 1;\n } catch (e) {}\n }\n function _emscripten_resize_heap(requestedSize) {\n var oldSize = HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n var maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize) {\n return false;\n }\n let alignUp = (x, multiple) =>\n x + ((multiple - (x % multiple)) % multiple);\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(\n overGrownHeapSize,\n requestedSize + 100663296\n );\n var newSize = Math.min(\n maxHeapSize,\n alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)\n );\n var replacement = emscripten_realloc_buffer(newSize);\n if (replacement) {\n return true;\n }\n }\n return false;\n }\n function getCFunc(ident) {\n var func = Module[\"_\" + ident];\n return func;\n }\n function writeArrayToMemory(array, buffer) {\n HEAP8.set(array, buffer);\n }\n function lengthBytesUTF8(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var c = str.charCodeAt(i);\n if (c <= 127) {\n len++;\n } else if (c <= 2047) {\n len += 2;\n } else if (c >= 55296 && c <= 57343) {\n len += 4;\n ++i;\n } else {\n len += 3;\n }\n }\n return len;\n }\n function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = (65536 + ((u & 1023) << 10)) | (u1 & 1023);\n }\n if (u <= 127) {\n if (outIdx >= endIdx) break;\n heap[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;\n heap[outIdx++] = 192 | (u >> 6);\n heap[outIdx++] = 128 | (u & 63);\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;\n heap[outIdx++] = 224 | (u >> 12);\n heap[outIdx++] = 128 | ((u >> 6) & 63);\n heap[outIdx++] = 128 | (u & 63);\n } else {\n if (outIdx + 3 >= endIdx) break;\n heap[outIdx++] = 240 | (u >> 18);\n heap[outIdx++] = 128 | ((u >> 12) & 63);\n heap[outIdx++] = 128 | ((u >> 6) & 63);\n heap[outIdx++] = 128 | (u & 63);\n }\n }\n heap[outIdx] = 0;\n return outIdx - startIdx;\n }\n function stringToUTF8(str, outPtr, maxBytesToWrite) {\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n }\n function stringToUTF8OnStack(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = stackAlloc(size);\n stringToUTF8(str, ret, size);\n return ret;\n }\n var UTF8Decoder =\n typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n var u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n } else {\n u0 =\n ((u0 & 7) << 18) |\n (u1 << 12) |\n (u2 << 6) |\n (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";\n }\n function ccall(ident, returnType, argTypes, args, opts) {\n var toC = {\n string: (str) => {\n var ret = 0;\n if (str !== null && str !== undefined && str !== 0) {\n ret = stringToUTF8OnStack(str);\n }\n return ret;\n },\n array: (arr) => {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n },\n };\n function convertReturnValue(ret) {\n if (returnType === \"string\") {\n return UTF8ToString(ret);\n }\n if (returnType === \"boolean\") return Boolean(ret);\n return ret;\n }\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }\n var ret = func.apply(null, cArgs);\n function onDone(ret) {\n if (stack !== 0) stackRestore(stack);\n return convertReturnValue(ret);\n }\n ret = onDone(ret);\n return ret;\n }\n function cwrap(ident, returnType, argTypes, opts) {\n var numericArgs =\n !argTypes ||\n argTypes.every((type) => type === \"number\" || type === \"boolean\");\n var numericRet = returnType !== \"string\";\n if (numericRet && numericArgs && !opts) {\n return getCFunc(ident);\n }\n return function () {\n return ccall(ident, returnType, argTypes, arguments, opts);\n };\n }\n var wasmImports = {\n d: ___cxa_throw,\n a: _abort,\n c: _emscripten_memcpy_big,\n b: _emscripten_resize_heap,\n };\n var asm = createWasm();\n var ___wasm_call_ctors = function () {\n return (___wasm_call_ctors = Module[\"asm\"][\"f\"]).apply(null, arguments);\n };\n var _getDendrogram = (Module[\"_getDendrogram\"] = function () {\n return (_getDendrogram = Module[\"_getDendrogram\"] =\n Module[\"asm\"][\"g\"]).apply(null, arguments);\n });\n var _free = (Module[\"_free\"] = function () {\n return (_free = Module[\"_free\"] = Module[\"asm\"][\"h\"]).apply(\n null,\n arguments\n );\n });\n var ___errno_location = function () {\n return (___errno_location = Module[\"asm\"][\"__errno_location\"]).apply(\n null,\n arguments\n );\n };\n var _malloc = (Module[\"_malloc\"] = function () {\n return (_malloc = Module[\"_malloc\"] = Module[\"asm\"][\"j\"]).apply(\n null,\n arguments\n );\n });\n var stackSave = function () {\n return (stackSave = Module[\"asm\"][\"k\"]).apply(null, arguments);\n };\n var stackRestore = function () {\n return (stackRestore = Module[\"asm\"][\"l\"]).apply(null, arguments);\n };\n var stackAlloc = function () {\n return (stackAlloc = Module[\"asm\"][\"m\"]).apply(null, arguments);\n };\n var ___cxa_is_pointer_type = function () {\n return (___cxa_is_pointer_type = Module[\"asm\"][\"n\"]).apply(\n null,\n arguments\n );\n };\n Module[\"ccall\"] = ccall;\n Module[\"cwrap\"] = cwrap;\n var calledRun;\n dependenciesFulfilled = function runCaller() {\n if (!calledRun) run();\n if (!calledRun) dependenciesFulfilled = runCaller;\n };\n function run() {\n if (runDependencies > 0) {\n return;\n }\n preRun();\n if (runDependencies > 0) {\n return;\n }\n function doRun() {\n if (calledRun) return;\n calledRun = true;\n Module[\"calledRun\"] = true;\n if (ABORT) return;\n initRuntime();\n readyPromiseResolve(Module);\n if (Module[\"onRuntimeInitialized\"]) Module[\"onRuntimeInitialized\"]();\n postRun();\n }\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(function () {\n setTimeout(function () {\n Module[\"setStatus\"](\"\");\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n }\n if (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\")\n Module[\"preInit\"] = [Module[\"preInit\"]];\n while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()();\n }\n }\n run();\n\n return exportCppLib.ready;\n };\n})();\nif (typeof exports === \"object\" && typeof module === \"object\")\n module.exports = exportCppLib;\nelse if (typeof define === \"function\" && define[\"amd\"])\n define([], function () {\n return exportCppLib;\n });\nelse if (typeof exports === \"object\") exports[\"exportCppLib\"] = exportCppLib;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t356: 1\n};\n\n// no chunk install function needed\n// no chunk loading\n\n// no HMR\n\n// no HMR manifest","import { getClustersFromDistMatWasm } from './clusterizerWasm';\nonmessage = (event) => {\n const { distMatArray, n, methodCode } = event.data;\n const data = {};\n try {\n getClustersFromDistMatWasm(distMatArray, n, methodCode)\n .then((clusterMatrix) => {\n data.clusterMatrix = clusterMatrix;\n postMessage(data);\n });\n }\n catch (e) {\n data.error = e;\n postMessage(data);\n }\n};\n//# sourceMappingURL=clustering-worker.js.map","import {exportCppLib} from './wasmCluster.js';\n\n/**\n calls wasm function to get clustering merges and heights from distance matrix\n distmat: distance matrix as an array of floats comprising the top right triangle of the matrix\n n: number of observables\n method: 0 = single linkage, 1 = complete linkage, 2 = average linkage, 3 = median linkage\n result: { mergeResult: Int32Array, heightsResult: Float32Array }\n mergeResult has length of (n-1)*2 and heightResult has length of n-1\n together they describe the clustering as a dendrogram as a matrix of (n-1) X 3\n each row in the given matrix comprises the merge event at step i and last column is the height from the leaves.\n*/\nexport async function getClustersFromDistMatWasm(distmat, n, method) {\n const wasmUrl = new URL('./wasmCluster.wasm', import.meta.url).href;\n const wasmPath = wasmUrl.substring(0, wasmUrl.lastIndexOf('/') + 1) + 'wasmCluster.wasm';\n let wasmInstance;\n try {\n wasmInstance = await exportCppLib({locateFile: () => wasmPath, printErr: (_) => {}});\n } catch (e) {\n try {\n wasmInstance = await exportCppLib({locateFile: () => wasmUrl, printErr: (_) => {}});\n }\n catch (e) {\n console.error(e);\n throw new Error('Unable to load wasm file for hierarchical clustering');\n }\n }\n\n const getDendrogramWasm =\n wasmInstance.cwrap('getDendrogram', 'null', ['number', 'number', 'number', 'number', 'number']);\n // allocate a memory block on the wasm heap for the distance matrix\n const bytesForDistMat = Float32Array.BYTES_PER_ELEMENT * distmat.length;\n const dataPtr = wasmInstance._malloc(bytesForDistMat);\n const matHeap = new Uint8Array(wasmInstance.HEAPU8.buffer, dataPtr, bytesForDistMat);\n matHeap.set(new Uint8Array(distmat.buffer));\n\n //allocate a memory block on the wasm heap for the merges array\n const bytesForMergeArray = Int32Array.BYTES_PER_ELEMENT * (n - 1) * 2;\n const mergePtr = wasmInstance._malloc(bytesForMergeArray);\n const mergeHeap = new Uint8Array(wasmInstance.HEAPU8.buffer, mergePtr, bytesForMergeArray);\n\n //allocate a memory block on the wasm heap for the heigt array\n const bytesForHeightsArray = Float32Array.BYTES_PER_ELEMENT * (n - 1);\n const heightsPtr = wasmInstance._malloc(bytesForHeightsArray);\n const heightsHeap = new Uint8Array(wasmInstance.HEAPU8.buffer, heightsPtr, bytesForHeightsArray);\n\n // call the wasm function\n getDendrogramWasm(dataPtr, n, method, mergePtr, heightsPtr);\n // get the merges and heights from the wasm heap\n const mergeResult = new Int32Array(mergeHeap.buffer, mergeHeap.byteOffset, (n-1) * 2);\n const heightsResult = (new Float32Array(heightsHeap.buffer, heightsHeap.byteOffset, n-1)).slice(0, n-1);\n\n const mergeRow1 = mergeResult.slice(0, n-1);\n const mergeRow2 = mergeResult.slice(n-1, 2*n - 2);\n // free the memory blocks on the wasm heap\n wasmInstance._free(matHeap.byteOffset);\n wasmInstance._free(mergeHeap.byteOffset);\n wasmInstance._free(heightsHeap.byteOffset);\n return {mergeRow1, mergeRow2, heightsResult};\n}\n"],"names":["_scriptDir","exportCppLib","document","currentScript","src","undefined","readyPromiseResolve","readyPromiseReject","Module","Promise","resolve","reject","readBinary","moduleOverrides","Object","assign","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","importScripts","scriptDirectory","process","versions","node","self","location","href","indexOf","substr","replace","lastIndexOf","url","xhr","XMLHttpRequest","open","responseType","send","Uint8Array","response","console","log","bind","wasmBinary","wasmMemory","err","warn","WebAssembly","abort","HEAP8","HEAPU8","HEAPU32","ABORT","updateMemoryViews","b","buffer","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","__ATPRERUN__","__ATINIT__","__ATPOSTRUN__","runDependencies","runDependencyWatcher","dependenciesFulfilled","what","e","RuntimeError","wasmBinaryFile","path","dataURIPrefix","isDataURI","filename","startsWith","getBinary","file","instantiateArrayBuffer","binaryFile","imports","receiver","fetch","then","credentials","catch","getBinaryPromise","binary","instantiate","instance","reason","callRuntimeCallbacks","callbacks","length","shift","ExceptionInfo","excPtr","this","ptr","set_type","type","get_type","set_destructor","destructor","get_destructor","set_caught","caught","get_caught","set_rethrown","rethrown","get_rethrown","init","set_adjusted_ptr","adjustedPtr","get_adjusted_ptr","get_exception_ptr","___cxa_is_pointer_type","adjusted","emscripten_realloc_buffer","size","grow","byteLength","getCFunc","ident","UTF8Decoder","TextDecoder","ccall","returnType","argTypes","args","opts","toC","string","str","ret","len","i","c","charCodeAt","lengthBytesUTF8","stackAlloc","outPtr","maxBytesToWrite","heap","outIdx","endIdx","u","stringToUTF8Array","stringToUTF8","stringToUTF8OnStack","array","arr","set","func","cArgs","stack","converter","stackSave","apply","stackRestore","heapOrArray","idx","maxBytesToRead","endPtr","decode","subarray","u0","u1","u2","String","fromCharCode","ch","UTF8ArrayToString","Boolean","convertReturnValue","onDone","calledRun","wasmImports","d","a","dest","num","copyWithin","requestedSize","x","oldSize","maxHeapSize","cutDown","overGrownHeapSize","Math","min","max","callback","info","receiveInstance","module","cb","exports","unshift","id","clearInterval","removeRunDependency","result","instantiateStreaming","createWasm","arguments","run","doRun","postRun","preRun","setTimeout","numericArgs","every","runCaller","pop","ready","define","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","amdO","definition","key","o","defineProperty","enumerable","get","g","globalThis","Function","hmd","create","children","Error","obj","prop","prototype","hasOwnProperty","call","scriptUrl","scripts","getElementsByTagName","p","onmessage","event","distMatArray","n","methodCode","data","async","distmat","method","wasmUrl","URL","wasmPath","substring","wasmInstance","locateFile","printErr","_","error","getDendrogramWasm","cwrap","bytesForDistMat","BYTES_PER_ELEMENT","dataPtr","_malloc","matHeap","bytesForMergeArray","mergePtr","mergeHeap","bytesForHeightsArray","heightsPtr","heightsHeap","mergeResult","byteOffset","heightsResult","slice","mergeRow1","mergeRow2","_free","getClustersFromDistMatWasm","clusterMatrix","postMessage"],"sourceRoot":""}
package/dist/36.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunkbio=self.webpackChunkbio||[]).push([[36],{5697:(t,e,n)=>{n.d(e,{Dz:()=>C,FV:()=>a,Jv:()=>y,KR:()=>o,MI:()=>M,NB:()=>f,UX:()=>c,WI:()=>g,Zd:()=>u,_h:()=>l,aW:()=>d,bX:()=>B,fX:()=>A,s:()=>_,yU:()=>m});var r=n(9657),i=n(1040),s=n(708);function h(t,e){const n=t.trueCount()+e.trueCount();if(0==n)return 1;const r=t.andWithCountBits(e,!0);return r/(n-r)}function o(t,e){return 1-h(t,e)}function a(t,e){return I(h(new r.Z(t,32*t.length),new r.Z(e,32*e.length)))}function l(t,e){return 1-function(t,e){const n=t.trueCount()+e.trueCount();return 0==n?0:2*t.andWithCountBits(e,!0)/n}(t,e)}function u(t,e){return 1-function(t,e){const n=t.trueCount()*e.trueCount();return 0==n?0:t.andWithCountBits(e,!0)/Math.sqrt(n)}(t,e)}function g(t,e){return Math.sqrt(t.trueCount()+e.trueCount()-2*t.andWithCountBits(e,!0))}function c(t,e){return t.trueCount()+e.trueCount()-2*t.andWithCountBits(e,!0)}function f(t,e){return 1-function(t,e){const n=t.trueCount()+e.trueCount(),r=t.andWithCountBits(e,!0);return r/(2*n-3*r)}(t,e)}function _(t,e){return I(function(t,e){const n=t.trueCount()+e.trueCount(),r=t.trueCount()*e.trueCount();return 0==r?0:t.andWithCountBits(e,!0)*n/(2*r)}(t,e))}function d(t,e){return I(function(t,e){const n=t.trueCount()+e.trueCount(),r=t.trueCount()*e.trueCount();return 0==r?0:(t.andWithCountBits(e,!0)*n-r)/r}(t,e))}function m(t,e){return 1-function(t,e){const n=Math.min(t.trueCount(),e.trueCount());return 0==n?0:t.andWithCountBits(e,!0)/n}(t,e)}function C(t,e){return I(function(t,e){const n=Math.max(t.trueCount(),e.trueCount());return 0==n?0:t.andWithCountBits(e,!0)/n}(t,e))}function A(t,e){return I(function(t,e){return 0==t.length?0:t.andWithCountBits(e,!0)/t.length}(t,e))}function M(t,e){return I(function(t,e){const n=t.andWithCountBits(e,!0),r=t.countBits(!0)+e.countBits(!0),i=t.length,s=i-r+n;return n==i||s==i?1:n/r+s/(2*i-r)}(t,e))}function I(t){return 0===t?3402823e32:1/t-1}function B(t){if(t&&null!=t.range&&t.range>0){const e=t.range;return(t,n)=>Math.abs(t-n)/e}return(t,e)=>Math.abs(t-e)}function y(t){const e=function(t){const e=t?.mostCommon??new Set;return(t,n)=>{const r=t.length,i=n.length;let s=0,h=0,o=0;for(;h<r&&o<i;)t[h]===n[o]?(e?.has(t[h])||++s,++h,++o):t[h]<n[o]?++h:++o;return s}}(t);return(t,n)=>0===n.length||0===t.length?1e4:Math.min(t.length,n.length)/(e(t,n)+1e-4)}i.gk.Tanimoto,i.gk.Dice,i.gk.Asymmetric,i.gk.BraunBlanquet,i.gk.Cosine,i.gk.Kulczynski,i.gk.McConnaughey,i.gk.RogotGoldberg,i.gk.Russel,i.gk.Sokal,i.gk.Hamming,i.gk.Euclidean,i.gk.Tanimoto,i.gk.Dice,i.gk.Asymmetric,i.gk.BraunBlanquet,i.gk.Cosine,i.gk.Kulczynski,i.gk.McConnaughey,i.gk.RogotGoldberg,i.gk.Russel,i.gk.Sokal,i.gk.Hamming,i.gk.Euclidean,i.gk.Tanimoto,i.gk.Dice,i.gk.Cosine,i.gk.Tanimoto,i.gk.Asymmetric,i.gk.Cosine,i.gk.Sokal,s.U.HAMMING,s.U.LEVENSHTEIN,s.U.MONOMER_CHEMICAL_DISTANCE,s.U.NEEDLEMANN_WUNSCH},708:(t,e,n)=>{function r(t={}){const e=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,e)=>t===e?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const e=t.alphabetIndexes,n=t.scoringMatrix,r=Math.min(...Object.keys(e).map((t=>t.charCodeAt(0))))+1,i=new Float32Array((n.length+r)*(n.length+r));return Object.entries(e).forEach((([t,r])=>{const s=n[r];Object.entries(e).forEach((([e,r])=>{i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]=s[r]}))})),(t,e)=>1-i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]}(),n=t?.threshold??0;return(t,r)=>{let i=0;const s=t.length,h=r.length,o=Math.ceil(Math.max(s,h)*(1-n));s!==h&&(i=Math.abs(s-h));let a=0;for(let n=0;n<Math.min(s,h);n++)if(t[n]!==r[n]&&(a+=e(t[n],r[n]),a>o))return 1;return a+=i,a/=Math.max(s,h),a}}n.d(e,{U:()=>h,o:()=>o});var i=n(1811);const s={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var h;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(h||(h={}));const o={[h.HAMMING]:r,[h.LEVENSHTEIN]:function(){return(t,e)=>(0,i.T)(t,e)/Math.max(t.length,e.length)},[h.NEEDLEMANN_WUNSCH]:function(t){const e=new Uint16Array(65536),{gapOpen:n,gapExtend:r,scoringMatrix:i,alphabetIndexes:h}={...s,...t};Object.entries(h).forEach((([t,n])=>e[t.charCodeAt(0)]=n));const o=[new Float32Array(1e4),new Float32Array(1e4)];return(t,s)=>{const h=new Array(t.length+1).fill(!1),a=new Array(t.length+1).fill(!1);let l=0,u=1;for(let e=1;e<t.length+1;e++)o[0][e]=-n-(e-1)*r,o[1][e]=0;o[0][0]=0;for(let g=1;g<s.length+1;g++){o[u][0]=-n-(g-1)*r;for(let c=1;c<t.length+1;c++){const f=o[l][c-1]+i[e[t.charCodeAt(c-1)]][e[s.charCodeAt(g-1)]],_=o[l][c]-(h[c]?r:n),d=o[u][c-1]-(a[c-1]?r:n);o[u][c]=Math.max(f,d,_),o[u][c]===f?(h[c]=!1,a[c]=!1):o[u][c]===d?(h[c]=!1,a[c]=!0):(h[c]=!0,a[c]=!1)}l=u,u=(u+1)%2}const g=Math.max(t.length,s.length);return(g-o[l][t.length])/g}},[h.MONOMER_CHEMICAL_DISTANCE]:r}},1040:(t,e,n)=>{var r,i,s,h,o,a,l;n.d(e,{CF:()=>i,Qe:()=>o,W:()=>r,Yc:()=>a,gd:()=>h,gj:()=>l,gk:()=>s}),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan",t.Onehot="One-Hot"}(r||(r={})),function(t){t.Euclidean="Euclidean"}(i||(i={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(s||(s={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(h||(h={})),function(t){t.Vector="Vector",t.String="String",t.BitArray="BitArray",t.MacroMolecule="MacroMolecule",t.Number="Number",t.IntArray="IntArray",t.NumberArray="NumberArray"}(o||(o={})),function(t){t.Difference="Difference"}(a||(a={})),function(t){t.CommonItems="Common Items"}(l||(l={}))},9657:(t,e,n)=>{n.d(e,{Z:()=>r});class r{constructor(t,e=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const n=t,i=r._createBuffer(n);if(e)for(let t=0;t<i.length;t++)i[t]=-1;this._data=i,this._length=n}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=e}}getRawData(){return this._data}assureGoez(t,e){if(t<0)throw new Error(`${e} should be greater than zero`)}assureInRange(t,e,n,r){if(t<e||t>n)throw new Error(`Argument ${r} (${t}) out of range (${e}, ${n})`)}copy(t,e,n){for(let r=0;r<n;r++)e[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const e=Math.floor((t+31)/32);if(e>this._data.length||e+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(e);this.copy(this._data,t,e>this._data.length?this._data.length:e),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,e)),this._length=t,this._version++}static fromAnd(t,e){if(t._length!=e._length)throw new Error(`Lengths differ (${t._length} != ${e._length})`);const n=new r(t._length);n._length=t._length,n._data=r._createBuffer(n._length),n._version=0;const i=t.lengthInInts;for(let r=0;r<i;r++)n._data[r]=t._data[r]&e._data[r];return n}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const e=new r(t.length);e._version=0;for(let n=0;n<e._length;n++)t[n]&&(e._data[Math.floor(n/32)]|=1<<(n%32&31));return e}static fromSeq(t,e){const n=new r(t);for(let r=0;r<t;++r)n.setBit(r,e(r));return n._version=0,n}static fromString(t){return r.fromSeq(t.length,(e=>"1"==t.charAt(e)))}static fromUint32Array(t,e){const n=new r(t);return n._data=e,n}static fromBytes(t){const e=t.length,n=new r(8*e);n._data=new Uint32Array(Math.floor((e+3)/4)),n._length=8*e;let i=0,s=0;for(;e-s>=4;)n._data[i++]=255&t[s]|(255&t[s+1])<<8|(255&t[s+2])<<16|(255&t[s+3])<<24,s+=4;return e-s==3&&(n._data[i]=(255&t[s+2])<<16),e-s==2&&(n._data[i]|=(255&t[s+1])<<8),e-s==1&&(n._data[i]|=255&t[s]),n._version=0,n}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let e=0;e<this._data.length-1;e++)if(this._data[e]!=t._data[e])return!1;for(let e=8*(this._data.length-1);e<this._length;e++)if(this.getBit(e)!=t.getBit(e))return!1;return!0}clone(){const t=new r(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,e){this.setAll(!1,!1);for(let e=0;e<this._length;e++)t(e)&&(this._data[Math.floor(e/32)]|=1<<(e%32&31));return this.incrementVersion(e),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,e=!1){const n=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=n;this.incrementVersion(e)}setIndexes(t,e=!0,n=!0,r=!0){n&&this.setAll(!e,!1);for(const n of t)this.setFast(n,e);this.incrementVersion(r)}everyIndex(t,e=!0){for(const n of t)if(this.getBit(n)!=e)return!1;return!0}anyIndex(t,e=!0){for(const n of t)if(this.getBit(n)==e)return!0;return!1}setWhere(t,e=!0,n=!0,r=!0,i=!0){if(n&&i&&this.setAll(!e,!1),i)for(let n=0;n<this._length;n++)t(n)&&this.setFast(n,e);else for(let n=0;n<this._length;n++)this.setFast(n,t(n)?e:!e);this.incrementVersion(r)}getRange(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return r.fromValues(n)}getRangeAsList(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return n}setRange(t,e,n,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length-1,"to");const i=Math.min(t,e),s=Math.max(t,e);if(n)for(let t=i;t<=s;t++)this.setTrue(t);else for(let t=i;t<=s;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,e,n=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!e),this.setAll(!e);for(let n=0;n<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=e&&(this.setFast(t,e),n++)}this.incrementVersion(n)}and(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]&=t._data[e];return this.incrementVersion(e),this}andNot(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const n=this.lengthInInts;for(let e=0;e<n;e++)this._data[e]&=~t._data[e];return this.incrementVersion(e),this}notAnd(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]=~this._data[e]&t._data[e];return this.incrementVersion(e),this}not(t=!0){for(let t=0,e=this.lengthInInts;t<e;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]|=t._data[e];return this.incrementVersion(e),this}xor(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]^=t._data[e];return this.incrementVersion(e),this}insertAt(t,e,n=!1){if(this.assureInRange(t,0,this._length,"pos"),0==e)return;const r=this._length;this.setLength(this._length+e);for(let n=r-1;n>=t;n--)this.setBit(n+e,this.getBit(n));for(let r=t;r<t+e;r++)this.setBit(r,n)}removeAt(t,e=1){if(e<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-e,"pos"),this.contains(!0))for(let n=t;n<this._length-e;n++)this.setBit(n,this.getBit(n+e));this.setLength(this._length-e)}removeByMask(t,e=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!e)),this.setAll(!e);else{let n=0;for(let r=-1;-1!=(r=t.findNext(r,!e));)this.setFast(n++,this.getBit(r));this._length=n,this._version++}return this}getBit(t){return 0!=(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,e,n=!0){this.setFast(t,e),this._version++}setFast(t,e){e?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let e=0;for(;e<t-1;e++)for(let t=this._data[e];0!=t;t>>>=8)this._selectedCount+=r._onBitCount[255&t];let n=this._data[e];const i=31&this._length;for(0!=i&&(n&=~(4294967295<<i));0!=n;n>>>=8)this._selectedCount+=r._onBitCount[255&n];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let e=0;if(this.trueCount()==this._length)for(let n=0;n<this._length;n++)e+=t(n)?1:0;else for(let n=-1;-1!=(n=this.findNext(n,!0));)e+=t(n)?1:0;return e}andWithCountBits(t,e){if(0==this._length)return 0;let n=0;const i=this.lengthInInts;let s=0;for(;s<i-1;s++)for(let e=this._data[s]&t._data[s];0!=e;e>>>=8)n+=r._onBitCount[255&e];let h=this._data[s]&t._data[s];const o=31&this._length;for(0!=o&&(h&=~(4294967295<<o));0!=h;h>>>=8)n+=r._onBitCount[255&h];return e?n:this._length-n}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,e=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let n=31&(t=t<0?0:t+1);const i=this.lengthInInts;for(let s=Math.floor(t/32);s<i;s++){let i=e?this._data[s]:~this._data[s];if(0!=n)i&=4294967295<<n&4294967295,n=0;else if(!e&&-4294967296==i)continue;for(let e=0;0!=i;e+=8,i>>>=8){const n=r._firstOnBit[255&i];if(n>=0)return(t=n+32*s+e)>=this._length?-1:t}}return-1}findPrev(t,e=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let n=1+(t=t<0?this._length-1:t-1)&31;for(let i=Math.floor(t/32);i>=0;i--){let t=e?this._data[i]:~this._data[i];0!=n&&(t&=~(4294967295<<n),n=0);for(let e=24;0!=t;e-=8,t<<=8){const n=r._lastOnBit[t>>>24];if(n>=0)return n+32*i+e}}return-1}}r._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),r._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),r._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7])},1811:(t,e,n)=>{n.d(e,{T:()=>i});const r=new Uint32Array(65536),i=(t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return 0===e.length?t.length:t.length<=32?((t,e)=>{const n=t.length,i=e.length,s=1<<n-1;let h=-1,o=0,a=n,l=n;for(;l--;)r[t.charCodeAt(l)]|=1<<l;for(l=0;l<i;l++){let t=r[e.charCodeAt(l)];const n=t|o;t|=(t&h)+h^h,o|=~(t|h),h&=t,o&s&&a++,h&s&&a--,o=o<<1|1,h=h<<1|~(n|o),o&=n}for(l=n;l--;)r[t.charCodeAt(l)]=0;return a})(t,e):((t,e)=>{const n=e.length,i=t.length,s=[],h=[],o=Math.ceil(n/32),a=Math.ceil(i/32);for(let t=0;t<o;t++)h[t]=-1,s[t]=0;let l=0;for(;l<a-1;l++){let o=0,a=-1;const u=32*l,g=Math.min(32,i)+u;for(let e=u;e<g;e++)r[t.charCodeAt(e)]|=1<<e;for(let t=0;t<n;t++){const n=r[e.charCodeAt(t)],i=h[t/32|0]>>>t&1,l=s[t/32|0]>>>t&1,u=n|o,g=((n|l)&a)+a^a|n|l;let c=o|~(g|a),f=a&g;c>>>31^i&&(h[t/32|0]^=1<<t),f>>>31^l&&(s[t/32|0]^=1<<t),c=c<<1|i,f=f<<1|l,a=f|~(u|c),o=c&u}for(let e=u;e<g;e++)r[t.charCodeAt(e)]=0}let u=0,g=-1;const c=32*l,f=Math.min(32,i-c)+c;for(let e=c;e<f;e++)r[t.charCodeAt(e)]|=1<<e;let _=i;for(let t=0;t<n;t++){const n=r[e.charCodeAt(t)],o=h[t/32|0]>>>t&1,a=s[t/32|0]>>>t&1,l=n|u,c=((n|a)&g)+g^g|n|a;let f=u|~(c|g),d=g&c;_+=f>>>i-1&1,_-=d>>>i-1&1,f>>>31^o&&(h[t/32|0]^=1<<t),d>>>31^a&&(s[t/32|0]^=1<<t),f=f<<1|o,d=d<<1|a,g=d|~(l|f),u=f&l}for(let e=c;e<f;e++)r[t.charCodeAt(e)]=0;return _})(t,e)}},3979:(t,e)=>{e.H$=void 0,e.H$=function(t,e,n){var r=function(t,e,n){if(0===t.length||0===e.length)return 0;if(n&&!n.caseSensitive&&(t=t.toUpperCase(),e=e.toUpperCase()),t===e)return 1;for(var r=0,i=t.length,s=e.length,h=Math.floor(Math.max(i,s)/2)-1,o=new Array(i),a=new Array(s),l=0;l<i;l++)for(var u=Math.max(0,l-h);u<=Math.min(s,l+h+1);u++)if(!o[l]&&!a[u]&&t[l]===e[u]){++r,o[l]=a[u]=!0;break}if(0===r)return 0;var g=0,c=0;for(l=0;l<i;l++)if(o[l]){for(;!a[c];)c++;t.charAt(l)!==e.charAt(c++)&&g++}return(r/i+r/s+(r-(g/=2))/r)/3}(t,e,n),i=0;if(r>.7){for(var s=Math.min(t.length,e.length),h=0;t[h]===e[h]&&h<4&&h<s;)++i,h++;r+=.1*i*(1-r)}return r}}}]);
2
- //# sourceMappingURL=36.js.map