@milaboratories/multi-sequence-alignment 1.45.5 → 1.45.7
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.
- package/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +1 -1
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +15 -0
- package/dist/Consensus.vue2.js +14 -13
- package/dist/Consensus.vue2.js.map +1 -1
- package/dist/SeqLogo.vue2.js +15 -13
- package/dist/SeqLogo.vue2.js.map +1 -1
- package/package.json +5 -5
- package/src/Consensus.vue +1 -0
- package/src/SeqLogo.vue +2 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/visualizations/visualizations/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @milaboratories/multi-sequence-alignment@1.45.
|
|
3
|
+
> @milaboratories/multi-sequence-alignment@1.45.7 build /home/runner/work/visualizations/visualizations/packages/multi-sequence-alignment
|
|
4
4
|
> ts-builder build --target browser-lib
|
|
5
5
|
|
|
6
6
|
Building browser-lib project...
|
|
@@ -38,15 +38,15 @@ computing gzip size...
|
|
|
38
38
|
[2mdist/[22m[36mToolbar.vue3.js [39m[1m[2m 1.05 kB[22m[1m[22m[2m │ gzip: 0.53 kB[22m[2m │ map: 0.10 kB[22m
|
|
39
39
|
[2mdist/[22m[36mmarkup.js [39m[1m[2m 2.02 kB[22m[1m[22m[2m │ gzip: 1.03 kB[22m[2m │ map: 6.53 kB[22m
|
|
40
40
|
[2mdist/[22m[36mPhylogeneticTree.vue2.js [39m[1m[2m 2.31 kB[22m[1m[22m[2m │ gzip: 1.06 kB[22m[2m │ map: 4.45 kB[22m
|
|
41
|
-
[2mdist/[22m[36mSeqLogo.vue2.js [39m[1m[2m 3.
|
|
41
|
+
[2mdist/[22m[36mSeqLogo.vue2.js [39m[1m[2m 3.28 kB[22m[1m[22m[2m │ gzip: 1.34 kB[22m[2m │ map: 6.56 kB[22m
|
|
42
42
|
[2mdist/[22m[36mMultiSequenceAlignmentView.vue3.js [39m[1m[2m 3.52 kB[22m[1m[22m[2m │ gzip: 1.28 kB[22m[2m │ map: 0.13 kB[22m
|
|
43
|
-
[2mdist/[22m[36mConsensus.vue2.js [39m[1m[2m 3.
|
|
43
|
+
[2mdist/[22m[36mConsensus.vue2.js [39m[1m[2m 3.64 kB[22m[1m[22m[2m │ gzip: 1.45 kB[22m[2m │ map: 7.18 kB[22m
|
|
44
44
|
[2mdist/[22m[36mMultiSequenceAlignmentView.vue2.js [39m[1m[2m 4.70 kB[22m[1m[22m[2m │ gzip: 1.66 kB[22m[2m │ map: 11.73 kB[22m
|
|
45
45
|
[2mdist/[22m[36mchemical-properties.js [39m[1m[2m 4.76 kB[22m[1m[22m[2m │ gzip: 1.67 kB[22m[2m │ map: 11.74 kB[22m
|
|
46
46
|
[2mdist/[22m[36mPlMultiSequenceAlignment.vue2.js [39m[1m[2m 7.76 kB[22m[1m[22m[2m │ gzip: 2.69 kB[22m[2m │ map: 14.84 kB[22m
|
|
47
47
|
[2mdist/[22m[36mToolbar.vue2.js [39m[1m[2m 8.32 kB[22m[1m[22m[2m │ gzip: 1.97 kB[22m[2m │ map: 12.54 kB[22m
|
|
48
48
|
[2mdist/[22m[36mdata.js [39m[1m[2m 11.32 kB[22m[1m[22m[2m │ gzip: 3.65 kB[22m[2m │ map: 33.73 kB[22m
|
|
49
|
-
[vite:dts] Declaration files built in
|
|
49
|
+
[vite:dts] Declaration files built in 4800ms.
|
|
50
50
|
|
|
51
|
-
[32m✓ built in
|
|
51
|
+
[32m✓ built in 6.50s[39m
|
|
52
52
|
Build completed successfully
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/visualizations/visualizations/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @milaboratories/multi-sequence-alignment@1.45.
|
|
3
|
+
> @milaboratories/multi-sequence-alignment@1.45.7 lint /home/runner/work/visualizations/visualizations/packages/multi-sequence-alignment
|
|
4
4
|
> eslint .
|
|
5
5
|
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/visualizations/visualizations/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @milaboratories/multi-sequence-alignment@1.45.
|
|
3
|
+
> @milaboratories/multi-sequence-alignment@1.45.7 test /home/runner/work/visualizations/visualizations/packages/multi-sequence-alignment
|
|
4
4
|
> vitest run --passWithNoTests
|
|
5
5
|
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/visualizations/visualizations/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @milaboratories/multi-sequence-alignment@1.45.
|
|
3
|
+
> @milaboratories/multi-sequence-alignment@1.45.7 type-check /home/runner/work/visualizations/visualizations/packages/multi-sequence-alignment
|
|
4
4
|
> ts-builder types --target browser-lib
|
|
5
5
|
|
|
6
6
|
↳ vue-tsc.js --noEmit --project ./tsconfig.json
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @milaboratories/multi-sequence-alignment
|
|
2
2
|
|
|
3
|
+
## 1.45.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8648b3e: minor settings fixes
|
|
8
|
+
- Updated dependencies [8648b3e]
|
|
9
|
+
- @milaboratories/miplots4@1.0.163
|
|
10
|
+
|
|
11
|
+
## 1.45.6
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [e250295]
|
|
16
|
+
- @milaboratories/miplots4@1.0.162
|
|
17
|
+
|
|
3
18
|
## 1.45.5
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/Consensus.vue2.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as x, useCssModule as k, useTemplateRef as E, computed as c, shallowRef as _, watchEffect as A, onBeforeUnmount as
|
|
2
|
-
import { PlAlert as
|
|
1
|
+
import { defineComponent as x, useCssModule as k, useTemplateRef as E, computed as c, shallowRef as _, watchEffect as A, onBeforeUnmount as G, createBlock as O, createElementBlock as S, unref as r, openBlock as y, withCtx as j, createTextVNode as B, toDisplayString as C, normalizeClass as v, createElementVNode as b } from "vue";
|
|
2
|
+
import { PlAlert as D } from "@milaboratories/uikit";
|
|
3
3
|
import { cellSize as K } from "./cell-size.js";
|
|
4
4
|
import { useMiPlots as T } from "./useMiPlots.js";
|
|
5
5
|
const U = /* @__PURE__ */ x({
|
|
@@ -12,8 +12,8 @@ const U = /* @__PURE__ */ x({
|
|
|
12
12
|
const s = g, w = k(), a = E("plotEl"), f = c(
|
|
13
13
|
() => s.residueCounts.map((e) => {
|
|
14
14
|
let o = 0, t = { label: "", count: 0 };
|
|
15
|
-
for (const [
|
|
16
|
-
o += n,
|
|
15
|
+
for (const [u, n] of Object.entries(e))
|
|
16
|
+
o += n, u !== "-" && n > t.count && (t = { label: u, count: n });
|
|
17
17
|
const i = CSS.percent(t.count / o * 100);
|
|
18
18
|
return {
|
|
19
19
|
label: t.label,
|
|
@@ -37,7 +37,8 @@ const U = /* @__PURE__ */ x({
|
|
|
37
37
|
order: s.residueCounts.map((o, t) => t),
|
|
38
38
|
inheritedAes: Object.fromEntries(
|
|
39
39
|
f.value.map(({ color: o }) => ({ fillColor: o })).entries()
|
|
40
|
-
)
|
|
40
|
+
),
|
|
41
|
+
unlimitedGroupsCount: !0
|
|
41
42
|
},
|
|
42
43
|
layers: [{
|
|
43
44
|
type: "bar",
|
|
@@ -81,8 +82,8 @@ const U = /* @__PURE__ */ x({
|
|
|
81
82
|
}), p = c(() => {
|
|
82
83
|
const e = [], o = [];
|
|
83
84
|
for (const [t, i] of s.residueCounts.entries())
|
|
84
|
-
for (const [
|
|
85
|
-
|
|
85
|
+
for (const [u, n] of Object.entries(i))
|
|
86
|
+
u !== "-" && (e.push(n), o.push(t));
|
|
86
87
|
return {
|
|
87
88
|
type: "columns",
|
|
88
89
|
id: `consensus-${crypto.randomUUID()}`,
|
|
@@ -91,20 +92,20 @@ const U = /* @__PURE__ */ x({
|
|
|
91
92
|
}), l = _(), { miplots: d, error: h } = T();
|
|
92
93
|
return A(async () => {
|
|
93
94
|
!a.value || !d.value || (l.value ? l.value.updateSettingsAndData(p.value, m.value) : (l.value = d.value.newPlot(p.value, m.value), l.value.mount(a.value)));
|
|
94
|
-
}),
|
|
95
|
+
}), G(() => {
|
|
95
96
|
var e;
|
|
96
97
|
(e = l.value) == null || e.unmount();
|
|
97
|
-
}), (e, o) =>
|
|
98
|
+
}), (e, o) => r(h) ? (y(), O(r(D), {
|
|
98
99
|
key: 0,
|
|
99
100
|
type: "error"
|
|
100
101
|
}, {
|
|
101
|
-
default:
|
|
102
|
-
|
|
102
|
+
default: j(() => [
|
|
103
|
+
B(C(r(h).message), 1)
|
|
103
104
|
]),
|
|
104
105
|
_: 1
|
|
105
|
-
})) : (y(),
|
|
106
|
+
})) : (y(), S("div", {
|
|
106
107
|
key: 1,
|
|
107
|
-
class: v(
|
|
108
|
+
class: v(r(w).container)
|
|
108
109
|
}, [
|
|
109
110
|
b("div", {
|
|
110
111
|
class: v(s.labelsClass)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consensus.vue2.js","sources":["../src/Consensus.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n Settings,\n} from '@milaboratories/miplots4';\nimport { PlAlert } from '@milaboratories/uikit';\nimport {\n computed,\n onBeforeUnmount,\n shallowRef,\n useCssModule,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport { cellSize } from './cell-size';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst props = defineProps<{\n residueCounts: ResidueCounts;\n labelsClass: string;\n}>();\n\nconst classes = useCssModule();\n\nconst plotEl = useTemplateRef('plotEl');\n\nconst columns = computed(() =>\n props.residueCounts.map((column) => {\n let totalCount = 0;\n let topResidue = { label: '', count: 0 };\n for (const [residue, count] of Object.entries(column)) {\n totalCount += count;\n if (residue === '-') continue;\n if (count > topResidue.count) topResidue = { label: residue, count };\n }\n const confidence = CSS.percent(topResidue.count / totalCount * 100);\n return {\n label: topResidue.label,\n color: `color-mix(in oklab, ${confidence} #3056AE, #C1CDE9)`,\n };\n }),\n);\n\nconst settings = computed(() => {\n const width = props.residueCounts.length * cellSize.inline;\n return ({\n type: 'discrete',\n y: {\n type: 'column',\n value: 'countKey',\n },\n legend: { show: false },\n primaryGrouping: {\n columnName: {\n type: 'column',\n value: 'columnKey',\n },\n order: props.residueCounts.map((_, i) => i),\n inheritedAes: Object.fromEntries(\n columns.value.map(({ color }) => ({ fillColor: color })).entries(),\n ),\n },\n layers: [{\n type: 'bar',\n height: 'max',\n aes: {\n ...props.residueCounts.length && {\n width: (width - props.residueCounts.length + 1)\n / props.residueCounts.length,\n },\n fillColor: {\n type: 'primaryGrouping',\n },\n lineColor: '#ffffff',\n },\n }],\n title: {\n name: '',\n show: false,\n },\n size: {\n width,\n height: 60,\n outerOffset: 0,\n innerOffset: 0,\n },\n xAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n yAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n frame: {\n type: 'empty',\n },\n } satisfies Settings);\n});\n\nconst data = computed<DataByColumns>(() => {\n const countKey: number[] = [];\n const columnKey: number[] = [];\n for (const [columnIndex, column] of props.residueCounts.entries()) {\n for (const [residue, count] of Object.entries(column)) {\n if (residue === '-') continue;\n countKey.push(count);\n columnKey.push(columnIndex);\n }\n }\n return ({\n type: 'columns',\n id: `consensus-${crypto.randomUUID()}`,\n values: { countKey, columnKey },\n });\n});\n\nconst plot = shallowRef<ChartInterface>();\n\nconst { miplots, error } = useMiPlots();\n\nwatchEffect(async () => {\n if (!plotEl.value || !miplots.value) return;\n if (!plot.value) {\n plot.value = miplots.value.newPlot(data.value, settings.value);\n plot.value.mount(plotEl.value);\n } else {\n plot.value.updateSettingsAndData(data.value, settings.value);\n }\n});\n\nonBeforeUnmount(() => {\n plot.value?.unmount();\n});\n</script>\n\n<template>\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n <div v-else :class=\"classes.container\">\n <div :class=\"props.labelsClass\">\n {{ columns.map(column => column.label).join('') }}\n </div>\n <div ref=\"plotEl\" />\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n svg {\n display: block;\n }\n}\n</style>\n"],"names":["props","__props","classes","useCssModule","plotEl","useTemplateRef","columns","computed","column","totalCount","topResidue","residue","count","confidence","settings","width","cellSize","_","i","color","data","countKey","columnKey","columnIndex","plot","shallowRef","miplots","error","useMiPlots","watchEffect","onBeforeUnmount","_a","_unref","_createBlock","PlAlert","_createTextVNode","_toDisplayString","_createElementBlock","_normalizeClass","_createElementVNode"],"mappings":";;;;;;;;;;;AAmBA,UAAMA,IAAQC,GAKRC,IAAUC,EAAA,GAEVC,IAASC,EAAe,QAAQ,GAEhCC,IAAUC;AAAA,MAAS,MACvBP,EAAM,cAAc,IAAI,CAACQ,MAAW;AAClC,YAAIC,IAAa,GACbC,IAAa,EAAE,OAAO,IAAI,OAAO,EAAA;AACrC,mBAAW,CAACC,GAASC,CAAK,KAAK,OAAO,QAAQJ,CAAM;AAElD,UADAC,KAAcG,GACVD,MAAY,OACZC,IAAQF,EAAW,cAAoB,EAAE,OAAOC,GAAS,OAAAC,EAAA;AAE/D,cAAMC,IAAa,IAAI,QAAQH,EAAW,QAAQD,IAAa,GAAG;AAClE,eAAO;AAAA,UACL,OAAOC,EAAW;AAAA,UAClB,OAAO,uBAAuBG,CAAU;AAAA,QAAA;AAAA,MAE5C,CAAC;AAAA,IAAA,GAGGC,IAAWP,EAAS,MAAM;AAC9B,YAAMQ,IAAQf,EAAM,cAAc,SAASgB,EAAS;AACpD,aAAQ;AAAA,QACN,MAAM;AAAA,QACN,GAAG;AAAA,UACD,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET,QAAQ,EAAE,MAAM,GAAA;AAAA,QAChB,iBAAiB;AAAA,UACf,YAAY;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,UAAA;AAAA,UAET,OAAOhB,EAAM,cAAc,IAAI,CAACiB,GAAGC,MAAMA,CAAC;AAAA,UAC1C,cAAc,OAAO;AAAA,YACnBZ,EAAQ,MAAM,IAAI,CAAC,EAAE,OAAAa,SAAa,EAAE,WAAWA,IAAQ,EAAE,QAAA;AAAA,UAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"Consensus.vue2.js","sources":["../src/Consensus.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n Settings,\n} from '@milaboratories/miplots4';\nimport { PlAlert } from '@milaboratories/uikit';\nimport {\n computed,\n onBeforeUnmount,\n shallowRef,\n useCssModule,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport { cellSize } from './cell-size';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst props = defineProps<{\n residueCounts: ResidueCounts;\n labelsClass: string;\n}>();\n\nconst classes = useCssModule();\n\nconst plotEl = useTemplateRef('plotEl');\n\nconst columns = computed(() =>\n props.residueCounts.map((column) => {\n let totalCount = 0;\n let topResidue = { label: '', count: 0 };\n for (const [residue, count] of Object.entries(column)) {\n totalCount += count;\n if (residue === '-') continue;\n if (count > topResidue.count) topResidue = { label: residue, count };\n }\n const confidence = CSS.percent(topResidue.count / totalCount * 100);\n return {\n label: topResidue.label,\n color: `color-mix(in oklab, ${confidence} #3056AE, #C1CDE9)`,\n };\n }),\n);\n\nconst settings = computed(() => {\n const width = props.residueCounts.length * cellSize.inline;\n return ({\n type: 'discrete',\n y: {\n type: 'column',\n value: 'countKey',\n },\n legend: { show: false },\n primaryGrouping: {\n columnName: {\n type: 'column',\n value: 'columnKey',\n },\n order: props.residueCounts.map((_, i) => i),\n inheritedAes: Object.fromEntries(\n columns.value.map(({ color }) => ({ fillColor: color })).entries(),\n ),\n unlimitedGroupsCount: true,\n },\n layers: [{\n type: 'bar',\n height: 'max',\n aes: {\n ...props.residueCounts.length && {\n width: (width - props.residueCounts.length + 1)\n / props.residueCounts.length,\n },\n fillColor: {\n type: 'primaryGrouping',\n },\n lineColor: '#ffffff',\n },\n }],\n title: {\n name: '',\n show: false,\n },\n size: {\n width,\n height: 60,\n outerOffset: 0,\n innerOffset: 0,\n },\n xAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n yAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n frame: {\n type: 'empty',\n },\n } satisfies Settings);\n});\n\nconst data = computed<DataByColumns>(() => {\n const countKey: number[] = [];\n const columnKey: number[] = [];\n for (const [columnIndex, column] of props.residueCounts.entries()) {\n for (const [residue, count] of Object.entries(column)) {\n if (residue === '-') continue;\n countKey.push(count);\n columnKey.push(columnIndex);\n }\n }\n return ({\n type: 'columns',\n id: `consensus-${crypto.randomUUID()}`,\n values: { countKey, columnKey },\n });\n});\n\nconst plot = shallowRef<ChartInterface>();\n\nconst { miplots, error } = useMiPlots();\n\nwatchEffect(async () => {\n if (!plotEl.value || !miplots.value) return;\n if (!plot.value) {\n plot.value = miplots.value.newPlot(data.value, settings.value);\n plot.value.mount(plotEl.value);\n } else {\n plot.value.updateSettingsAndData(data.value, settings.value);\n }\n});\n\nonBeforeUnmount(() => {\n plot.value?.unmount();\n});\n</script>\n\n<template>\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n <div v-else :class=\"classes.container\">\n <div :class=\"props.labelsClass\">\n {{ columns.map(column => column.label).join('') }}\n </div>\n <div ref=\"plotEl\" />\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n svg {\n display: block;\n }\n}\n</style>\n"],"names":["props","__props","classes","useCssModule","plotEl","useTemplateRef","columns","computed","column","totalCount","topResidue","residue","count","confidence","settings","width","cellSize","_","i","color","data","countKey","columnKey","columnIndex","plot","shallowRef","miplots","error","useMiPlots","watchEffect","onBeforeUnmount","_a","_unref","_createBlock","PlAlert","_createTextVNode","_toDisplayString","_createElementBlock","_normalizeClass","_createElementVNode"],"mappings":"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"}
|
package/dist/SeqLogo.vue2.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as k, useCssModule as w, useTemplateRef as E, computed as d, shallowRef as x, watchEffect as D, onBeforeUnmount as _, createBlock as G, createElementBlock as K, unref as l, openBlock as f, withCtx as B, createTextVNode as A, toDisplayString as S, normalizeClass as T } from "vue";
|
|
2
2
|
import { PlAlert as L } from "@milaboratories/uikit";
|
|
3
3
|
import { cellSize as N } from "./cell-size.js";
|
|
4
4
|
import { useMiPlots as P } from "./useMiPlots.js";
|
|
5
|
-
const R = /* @__PURE__ */
|
|
5
|
+
const R = /* @__PURE__ */ k({
|
|
6
6
|
__name: "SeqLogo",
|
|
7
7
|
props: {
|
|
8
8
|
residueCounts: {}
|
|
@@ -42,7 +42,7 @@ const R = /* @__PURE__ */ C({
|
|
|
42
42
|
B: e.black,
|
|
43
43
|
X: e.black,
|
|
44
44
|
Z: e.black
|
|
45
|
-
}, r =
|
|
45
|
+
}, r = d(() => ({
|
|
46
46
|
type: "discrete",
|
|
47
47
|
title: {
|
|
48
48
|
name: "",
|
|
@@ -77,23 +77,25 @@ const R = /* @__PURE__ */ C({
|
|
|
77
77
|
columnName: {
|
|
78
78
|
type: "column",
|
|
79
79
|
value: "columnKey"
|
|
80
|
-
}
|
|
80
|
+
},
|
|
81
|
+
unlimitedGroupsCount: !0
|
|
81
82
|
},
|
|
82
83
|
secondaryGrouping: {
|
|
83
84
|
columnName: {
|
|
84
85
|
type: "column",
|
|
85
86
|
value: "residueKey"
|
|
86
|
-
}
|
|
87
|
+
},
|
|
88
|
+
unlimitedGroupsCount: !0
|
|
87
89
|
},
|
|
88
90
|
layers: [{
|
|
89
91
|
type: "logo",
|
|
90
92
|
aes: { fillColor: h }
|
|
91
93
|
}]
|
|
92
|
-
})), a =
|
|
94
|
+
})), a = d(() => {
|
|
93
95
|
const t = [], s = [], m = [];
|
|
94
|
-
for (const [v,
|
|
95
|
-
for (const [p,
|
|
96
|
-
p !== "-" && (t.push(
|
|
96
|
+
for (const [v, C] of u.residueCounts.entries())
|
|
97
|
+
for (const [p, b] of Object.entries(C))
|
|
98
|
+
p !== "-" && (t.push(b), s.push(v), m.push(p));
|
|
97
99
|
return {
|
|
98
100
|
type: "columns",
|
|
99
101
|
id: `seq-logo-${crypto.randomUUID()}`,
|
|
@@ -105,15 +107,15 @@ const R = /* @__PURE__ */ C({
|
|
|
105
107
|
}), _(() => {
|
|
106
108
|
var t;
|
|
107
109
|
(t = o.value) == null || t.unmount();
|
|
108
|
-
}), (t, s) => l(i) ? (
|
|
110
|
+
}), (t, s) => l(i) ? (f(), G(l(L), {
|
|
109
111
|
key: 0,
|
|
110
112
|
type: "error"
|
|
111
113
|
}, {
|
|
112
|
-
default:
|
|
113
|
-
|
|
114
|
+
default: B(() => [
|
|
115
|
+
A(S(l(i).message), 1)
|
|
114
116
|
]),
|
|
115
117
|
_: 1
|
|
116
|
-
})) : (
|
|
118
|
+
})) : (f(), K("div", {
|
|
117
119
|
key: 1,
|
|
118
120
|
ref_key: "plotEl",
|
|
119
121
|
ref: n,
|
package/dist/SeqLogo.vue2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeqLogo.vue2.js","sources":["../src/SeqLogo.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n Settings,\n} from '@milaboratories/miplots4';\nimport { PlAlert } from '@milaboratories/uikit';\nimport {\n computed,\n onBeforeUnmount,\n shallowRef,\n useCssModule,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport { cellSize } from './cell-size';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst props = defineProps<{\n residueCounts: ResidueCounts;\n}>();\n\nconst classes = useCssModule();\n\nconst plotEl = useTemplateRef('plotEl');\n\nconst palette = {\n blue: '#549EE7',\n red: '#E85456',\n green: '#65BF65',\n magenta: '#9178E1',\n pink: '#D568D5',\n orange: '#C59445',\n cyan: '#62C7CC',\n yellow: '#D5D549',\n black: '#000000',\n};\n\nconst residueColors = {\n A: palette.blue,\n R: palette.red,\n N: palette.green,\n D: palette.magenta,\n C: palette.pink,\n Q: palette.green,\n E: palette.magenta,\n G: palette.orange,\n H: palette.cyan,\n I: palette.blue,\n L: palette.blue,\n K: palette.red,\n M: palette.blue,\n F: palette.blue,\n P: palette.yellow,\n S: palette.green,\n T: palette.green,\n W: palette.blue,\n Y: palette.cyan,\n V: palette.blue,\n B: palette.black,\n X: palette.black,\n Z: palette.black,\n};\n\nconst settings = computed(() => ({\n type: 'discrete',\n title: {\n name: '',\n show: false,\n },\n size: {\n width: props.residueCounts.length * cellSize.inline,\n height: 80,\n innerOffset: 0,\n outerOffset: 0,\n },\n frame: {\n type: 'empty',\n },\n xAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n yAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n y: {\n type: 'column',\n value: 'countKey',\n },\n primaryGrouping: {\n columnName: {\n type: 'column',\n value: 'columnKey',\n },\n },\n secondaryGrouping: {\n columnName: {\n type: 'column',\n value: 'residueKey',\n },\n },\n layers: [{\n type: 'logo',\n aes: { fillColor: residueColors },\n }],\n} satisfies Settings));\n\nconst data = computed<DataByColumns>(() => {\n const countKey: number[] = [];\n const columnKey: number[] = [];\n const residueKey: string[] = [];\n for (const [columnIndex, column] of props.residueCounts.entries()) {\n for (const [residue, count] of Object.entries(column)) {\n if (residue === '-') continue;\n countKey.push(count);\n columnKey.push(columnIndex);\n residueKey.push(residue);\n }\n }\n return ({\n type: 'columns',\n id: `seq-logo-${crypto.randomUUID()}`,\n values: { countKey, columnKey, residueKey },\n });\n});\n\nconst { miplots, error } = useMiPlots();\n\nconst plot = shallowRef<ChartInterface>();\n\nwatchEffect(async () => {\n if (!plotEl.value || !miplots.value) return;\n if (!plot.value) {\n plot.value = miplots.value.newPlot(data.value, settings.value);\n plot.value.mount(plotEl.value);\n } else {\n plot.value.updateSettingsAndData(data.value, settings.value);\n }\n});\n\nonBeforeUnmount(() => {\n plot.value?.unmount();\n});\n</script>\n\n<template>\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n <div v-else ref=\"plotEl\" :class=\"classes.container\" />\n</template>\n\n<style module>\n.container {\n svg {\n display: block;\n }\n}\n</style>\n"],"names":["props","__props","classes","useCssModule","plotEl","useTemplateRef","palette","residueColors","settings","computed","cellSize","data","countKey","columnKey","residueKey","columnIndex","column","residue","count","miplots","error","useMiPlots","plot","shallowRef","watchEffect","onBeforeUnmount","_a","_unref","_createBlock","PlAlert","_createTextVNode","_toDisplayString","_createElementBlock","_normalizeClass"],"mappings":";;;;;;;;;;AAmBA,UAAMA,IAAQC,GAIRC,IAAUC,EAAA,GAEVC,IAASC,EAAe,QAAQ,GAEhCC,IAAU;AAAA,MACd,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,IAAA,GAGHC,IAAgB;AAAA,MACpB,GAAGD,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,IAAA,GAGPE,IAAWC,EAAS,OAAO;AAAA,MAC/B,MAAM;AAAA,MACN,OAAO;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,OAAOT,EAAM,cAAc,SAASU,EAAS;AAAA,QAC7C,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,aAAa;AAAA,MAAA;AAAA,MAEf,OAAO;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,MAER,OAAO;AAAA,QACL,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,cAAc;AAAA,MAAA;AAAA,MAEhB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,cAAc;AAAA,MAAA;AAAA,MAEhB,GAAG;AAAA,QACD,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,iBAAiB;AAAA,QACf,YAAY;AAAA,UACV,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"SeqLogo.vue2.js","sources":["../src/SeqLogo.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n Settings,\n} from '@milaboratories/miplots4';\nimport { PlAlert } from '@milaboratories/uikit';\nimport {\n computed,\n onBeforeUnmount,\n shallowRef,\n useCssModule,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport { cellSize } from './cell-size';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst props = defineProps<{\n residueCounts: ResidueCounts;\n}>();\n\nconst classes = useCssModule();\n\nconst plotEl = useTemplateRef('plotEl');\n\nconst palette = {\n blue: '#549EE7',\n red: '#E85456',\n green: '#65BF65',\n magenta: '#9178E1',\n pink: '#D568D5',\n orange: '#C59445',\n cyan: '#62C7CC',\n yellow: '#D5D549',\n black: '#000000',\n};\n\nconst residueColors = {\n A: palette.blue,\n R: palette.red,\n N: palette.green,\n D: palette.magenta,\n C: palette.pink,\n Q: palette.green,\n E: palette.magenta,\n G: palette.orange,\n H: palette.cyan,\n I: palette.blue,\n L: palette.blue,\n K: palette.red,\n M: palette.blue,\n F: palette.blue,\n P: palette.yellow,\n S: palette.green,\n T: palette.green,\n W: palette.blue,\n Y: palette.cyan,\n V: palette.blue,\n B: palette.black,\n X: palette.black,\n Z: palette.black,\n};\n\nconst settings = computed(() => ({\n type: 'discrete',\n title: {\n name: '',\n show: false,\n },\n size: {\n width: props.residueCounts.length * cellSize.inline,\n height: 80,\n innerOffset: 0,\n outerOffset: 0,\n },\n frame: {\n type: 'empty',\n },\n xAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n yAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n y: {\n type: 'column',\n value: 'countKey',\n },\n primaryGrouping: {\n columnName: {\n type: 'column',\n value: 'columnKey',\n },\n unlimitedGroupsCount: true,\n },\n secondaryGrouping: {\n columnName: {\n type: 'column',\n value: 'residueKey',\n },\n unlimitedGroupsCount: true,\n },\n layers: [{\n type: 'logo',\n aes: { fillColor: residueColors },\n }],\n} satisfies Settings));\n\nconst data = computed<DataByColumns>(() => {\n const countKey: number[] = [];\n const columnKey: number[] = [];\n const residueKey: string[] = [];\n for (const [columnIndex, column] of props.residueCounts.entries()) {\n for (const [residue, count] of Object.entries(column)) {\n if (residue === '-') continue;\n countKey.push(count);\n columnKey.push(columnIndex);\n residueKey.push(residue);\n }\n }\n return ({\n type: 'columns',\n id: `seq-logo-${crypto.randomUUID()}`,\n values: { countKey, columnKey, residueKey },\n });\n});\n\nconst { miplots, error } = useMiPlots();\n\nconst plot = shallowRef<ChartInterface>();\n\nwatchEffect(async () => {\n if (!plotEl.value || !miplots.value) return;\n if (!plot.value) {\n plot.value = miplots.value.newPlot(data.value, settings.value);\n plot.value.mount(plotEl.value);\n } else {\n plot.value.updateSettingsAndData(data.value, settings.value);\n }\n});\n\nonBeforeUnmount(() => {\n plot.value?.unmount();\n});\n</script>\n\n<template>\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n <div v-else ref=\"plotEl\" :class=\"classes.container\" />\n</template>\n\n<style module>\n.container {\n svg {\n display: block;\n }\n}\n</style>\n"],"names":["props","__props","classes","useCssModule","plotEl","useTemplateRef","palette","residueColors","settings","computed","cellSize","data","countKey","columnKey","residueKey","columnIndex","column","residue","count","miplots","error","useMiPlots","plot","shallowRef","watchEffect","onBeforeUnmount","_a","_unref","_createBlock","PlAlert","_createTextVNode","_toDisplayString","_createElementBlock","_normalizeClass"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/multi-sequence-alignment",
|
|
3
|
-
"version": "1.45.
|
|
3
|
+
"version": "1.45.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"styles": "dist/index.js",
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@milaboratories/biowasm-tools": "^2.0.0",
|
|
16
|
-
"@milaboratories/uikit": "^2.
|
|
17
|
-
"@platforma-sdk/ui-vue": "^1.
|
|
18
|
-
"@platforma-sdk/model": "^1.
|
|
16
|
+
"@milaboratories/uikit": "^2.7.0",
|
|
17
|
+
"@platforma-sdk/ui-vue": "^1.46.1",
|
|
18
|
+
"@platforma-sdk/model": "^1.46.0",
|
|
19
19
|
"vue": "^3.5.24",
|
|
20
|
-
"@milaboratories/miplots4": "1.0.
|
|
20
|
+
"@milaboratories/miplots4": "1.0.163"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@milaboratories/ts-configs": "^1.0.6",
|
package/src/Consensus.vue
CHANGED
package/src/SeqLogo.vue
CHANGED
|
@@ -99,12 +99,14 @@ const settings = computed(() => ({
|
|
|
99
99
|
type: 'column',
|
|
100
100
|
value: 'columnKey',
|
|
101
101
|
},
|
|
102
|
+
unlimitedGroupsCount: true,
|
|
102
103
|
},
|
|
103
104
|
secondaryGrouping: {
|
|
104
105
|
columnName: {
|
|
105
106
|
type: 'column',
|
|
106
107
|
value: 'residueKey',
|
|
107
108
|
},
|
|
109
|
+
unlimitedGroupsCount: true,
|
|
108
110
|
},
|
|
109
111
|
layers: [{
|
|
110
112
|
type: 'logo',
|