@platforma-open/milaboratories.repertoire-diversity-2.model 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -3,9 +3,6 @@
3
3
  var model$1 = require('@platforma-sdk/model');
4
4
 
5
5
  // src/index.ts
6
- function isNumericType(c) {
7
- return c.valueType === "Double" || c.valueType === "Int" || c.valueType === "Float" || c.valueType === "Long";
8
- }
9
6
  var model = model$1.BlockModel.create().withArgs({
10
7
  metrics: [
11
8
  {
@@ -58,9 +55,22 @@ var model = model$1.BlockModel.create().withArgs({
58
55
  filters: []
59
56
  }
60
57
  }
61
- }).argsValid((ctx) => ctx.args.abundanceRef !== void 0).output("abundanceOptions", (ctx) => ctx.resultPool.getOptions(
62
- (c) => model$1.isPColumnSpec(c) && isNumericType(c) && c.annotations?.["pl7.app/isAbundance"] === "true" && c.annotations?.["pl7.app/abundance/normalized"] === "false"
63
- )).output("pt", (ctx) => {
58
+ }).argsValid((ctx) => ctx.args.abundanceRef !== void 0).output(
59
+ "abundanceOptions",
60
+ (ctx) => ctx.resultPool.getOptions([
61
+ {
62
+ axes: [
63
+ { name: "pl7.app/sampleId" },
64
+ {}
65
+ ],
66
+ annotations: {
67
+ "pl7.app/isAbundance": "true",
68
+ "pl7.app/abundance/normalized": "false",
69
+ "pl7.app/abundance/isPrimary": "true"
70
+ }
71
+ }
72
+ ])
73
+ ).output("pt", (ctx) => {
64
74
  const pCols = ctx.outputs?.resolve("pf")?.getPColumns();
65
75
  if (pCols === void 0) {
66
76
  return void 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["BlockModel","isPColumnSpec","createPlDataTable","createPFrameForGraphs"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { GraphMakerState } from '@milaboratories/graph-maker';\nimport type { InferOutputsType, PColumnSpec, PlDataTableState, PlRef } from '@platforma-sdk/model';\nimport { BlockModel, createPFrameForGraphs, createPlDataTable, isPColumnSpec } from '@platforma-sdk/model';\n\nexport type DiversityType = 'chao1' | 'd50' | 'efronThisted' |\n 'observed' | 'shannonWienerIndex' | 'shannonWiener' |\n 'normalizedShannonWiener' | 'inverseSimpson' | 'gini';\n\nexport type Metric = {\n type: DiversityType | undefined;\n downsampling: {\n type?: 'none' | 'top' | 'cumtop' | 'hypergeometric' ;\n valueChooser?: 'min' | 'fixed' | 'max' | 'auto';\n n?: number;\n };\n};\n\nexport type BlockArgs = {\n abundanceRef?: PlRef;\n metrics: Metric[];\n};\n\nexport type UiState = {\n blockTitle: string;\n tableState?: PlDataTableState;\n graphState: GraphMakerState;\n};\n\nfunction isNumericType(c: PColumnSpec): boolean {\n return c.valueType === 'Double' || c.valueType === 'Int' || c.valueType === 'Float' || c.valueType === 'Long';\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n metrics: [\n {\n type: 'observed',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'shannonWiener',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'chao1',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'gini',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'd50',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n ],\n })\n\n .withUiState<UiState>({\n blockTitle: 'Repertoire Diversity',\n graphState: {\n title: 'Repertoire Diversity',\n template: 'bar',\n currentTab: null,\n },\n\n tableState: {\n gridState: {},\n pTableParams: {\n sorting: [],\n filters: [],\n },\n },\n })\n\n .argsValid((ctx) => ctx.args.abundanceRef !== undefined)\n\n .output('abundanceOptions', (ctx) =>\n ctx.resultPool.getOptions((c) =>\n isPColumnSpec(c) && isNumericType(c)\n && c.annotations?.['pl7.app/isAbundance'] === 'true'\n && c.annotations?.['pl7.app/abundance/normalized'] === 'false',\n ))\n\n .output('pt', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPlDataTable(ctx, pCols, ctx.uiState?.tableState);\n })\n\n .output('pf', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, pCols);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title((ctx) => ctx.uiState?.blockTitle ?? 'Repertoire Diversity')\n\n .sections((_) => [\n { type: 'link', href: '/', label: 'Main' },\n { type: 'link', href: '/diversityGraph', label: 'Diversity Graph' },\n ])\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof model>;\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["BlockModel","createPlDataTable","createPFrameForGraphs"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { GraphMakerState } from '@milaboratories/graph-maker';\nimport type { InferOutputsType, PColumnSpec, PlDataTableState, PlRef } from '@platforma-sdk/model';\nimport { BlockModel, createPFrameForGraphs, createPlDataTable } from '@platforma-sdk/model';\n\nexport type DiversityType = 'chao1' | 'd50' | 'efronThisted' |\n 'observed' | 'shannonWienerIndex' | 'shannonWiener' |\n 'normalizedShannonWiener' | 'inverseSimpson' | 'gini';\n\nexport type Metric = {\n type: DiversityType | undefined;\n downsampling: {\n type?: 'none' | 'top' | 'cumtop' | 'hypergeometric' ;\n valueChooser?: 'min' | 'fixed' | 'max' | 'auto';\n n?: number;\n };\n};\n\nexport type BlockArgs = {\n abundanceRef?: PlRef;\n metrics: Metric[];\n};\n\nexport type UiState = {\n blockTitle: string;\n tableState?: PlDataTableState;\n graphState: GraphMakerState;\n};\n\nfunction isNumericType(c: PColumnSpec): boolean {\n return c.valueType === 'Double' || c.valueType === 'Int' || c.valueType === 'Float' || c.valueType === 'Long';\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n metrics: [\n {\n type: 'observed',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'shannonWiener',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'chao1',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'gini',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'd50',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n ],\n })\n\n .withUiState<UiState>({\n blockTitle: 'Repertoire Diversity',\n graphState: {\n title: 'Repertoire Diversity',\n template: 'bar',\n currentTab: null,\n },\n\n tableState: {\n gridState: {},\n pTableParams: {\n sorting: [],\n filters: [],\n },\n },\n })\n\n .argsValid((ctx) => ctx.args.abundanceRef !== undefined)\n\n .output('abundanceOptions', (ctx) =>\n ctx.resultPool.getOptions([{\n axes: [\n { name: 'pl7.app/sampleId' },\n { },\n ],\n annotations: {\n 'pl7.app/isAbundance': 'true',\n 'pl7.app/abundance/normalized': 'false',\n 'pl7.app/abundance/isPrimary': 'true',\n },\n },\n ]),\n )\n\n .output('pt', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPlDataTable(ctx, pCols, ctx.uiState?.tableState);\n })\n\n .output('pf', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, pCols);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title((ctx) => ctx.uiState?.blockTitle ?? 'Repertoire Diversity')\n\n .sections((_) => [\n { type: 'link', href: '/', label: 'Main' },\n { type: 'link', href: '/diversityGraph', label: 'Diversity Graph' },\n ])\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof model>;\n"]}
package/dist/index.js CHANGED
@@ -1,9 +1,6 @@
1
- import { BlockModel, isPColumnSpec, createPlDataTable, createPFrameForGraphs } from '@platforma-sdk/model';
1
+ import { BlockModel, createPlDataTable, createPFrameForGraphs } from '@platforma-sdk/model';
2
2
 
3
3
  // src/index.ts
4
- function isNumericType(c) {
5
- return c.valueType === "Double" || c.valueType === "Int" || c.valueType === "Float" || c.valueType === "Long";
6
- }
7
4
  var model = BlockModel.create().withArgs({
8
5
  metrics: [
9
6
  {
@@ -56,9 +53,22 @@ var model = BlockModel.create().withArgs({
56
53
  filters: []
57
54
  }
58
55
  }
59
- }).argsValid((ctx) => ctx.args.abundanceRef !== void 0).output("abundanceOptions", (ctx) => ctx.resultPool.getOptions(
60
- (c) => isPColumnSpec(c) && isNumericType(c) && c.annotations?.["pl7.app/isAbundance"] === "true" && c.annotations?.["pl7.app/abundance/normalized"] === "false"
61
- )).output("pt", (ctx) => {
56
+ }).argsValid((ctx) => ctx.args.abundanceRef !== void 0).output(
57
+ "abundanceOptions",
58
+ (ctx) => ctx.resultPool.getOptions([
59
+ {
60
+ axes: [
61
+ { name: "pl7.app/sampleId" },
62
+ {}
63
+ ],
64
+ annotations: {
65
+ "pl7.app/isAbundance": "true",
66
+ "pl7.app/abundance/normalized": "false",
67
+ "pl7.app/abundance/isPrimary": "true"
68
+ }
69
+ }
70
+ ])
71
+ ).output("pt", (ctx) => {
62
72
  const pCols = ctx.outputs?.resolve("pf")?.getPColumns();
63
73
  if (pCols === void 0) {
64
74
  return void 0;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { GraphMakerState } from '@milaboratories/graph-maker';\nimport type { InferOutputsType, PColumnSpec, PlDataTableState, PlRef } from '@platforma-sdk/model';\nimport { BlockModel, createPFrameForGraphs, createPlDataTable, isPColumnSpec } from '@platforma-sdk/model';\n\nexport type DiversityType = 'chao1' | 'd50' | 'efronThisted' |\n 'observed' | 'shannonWienerIndex' | 'shannonWiener' |\n 'normalizedShannonWiener' | 'inverseSimpson' | 'gini';\n\nexport type Metric = {\n type: DiversityType | undefined;\n downsampling: {\n type?: 'none' | 'top' | 'cumtop' | 'hypergeometric' ;\n valueChooser?: 'min' | 'fixed' | 'max' | 'auto';\n n?: number;\n };\n};\n\nexport type BlockArgs = {\n abundanceRef?: PlRef;\n metrics: Metric[];\n};\n\nexport type UiState = {\n blockTitle: string;\n tableState?: PlDataTableState;\n graphState: GraphMakerState;\n};\n\nfunction isNumericType(c: PColumnSpec): boolean {\n return c.valueType === 'Double' || c.valueType === 'Int' || c.valueType === 'Float' || c.valueType === 'Long';\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n metrics: [\n {\n type: 'observed',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'shannonWiener',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'chao1',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'gini',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'd50',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n ],\n })\n\n .withUiState<UiState>({\n blockTitle: 'Repertoire Diversity',\n graphState: {\n title: 'Repertoire Diversity',\n template: 'bar',\n currentTab: null,\n },\n\n tableState: {\n gridState: {},\n pTableParams: {\n sorting: [],\n filters: [],\n },\n },\n })\n\n .argsValid((ctx) => ctx.args.abundanceRef !== undefined)\n\n .output('abundanceOptions', (ctx) =>\n ctx.resultPool.getOptions((c) =>\n isPColumnSpec(c) && isNumericType(c)\n && c.annotations?.['pl7.app/isAbundance'] === 'true'\n && c.annotations?.['pl7.app/abundance/normalized'] === 'false',\n ))\n\n .output('pt', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPlDataTable(ctx, pCols, ctx.uiState?.tableState);\n })\n\n .output('pf', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, pCols);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title((ctx) => ctx.uiState?.blockTitle ?? 'Repertoire Diversity')\n\n .sections((_) => [\n { type: 'link', href: '/', label: 'Main' },\n { type: 'link', href: '/diversityGraph', label: 'Diversity Graph' },\n ])\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof model>;\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { GraphMakerState } from '@milaboratories/graph-maker';\nimport type { InferOutputsType, PColumnSpec, PlDataTableState, PlRef } from '@platforma-sdk/model';\nimport { BlockModel, createPFrameForGraphs, createPlDataTable } from '@platforma-sdk/model';\n\nexport type DiversityType = 'chao1' | 'd50' | 'efronThisted' |\n 'observed' | 'shannonWienerIndex' | 'shannonWiener' |\n 'normalizedShannonWiener' | 'inverseSimpson' | 'gini';\n\nexport type Metric = {\n type: DiversityType | undefined;\n downsampling: {\n type?: 'none' | 'top' | 'cumtop' | 'hypergeometric' ;\n valueChooser?: 'min' | 'fixed' | 'max' | 'auto';\n n?: number;\n };\n};\n\nexport type BlockArgs = {\n abundanceRef?: PlRef;\n metrics: Metric[];\n};\n\nexport type UiState = {\n blockTitle: string;\n tableState?: PlDataTableState;\n graphState: GraphMakerState;\n};\n\nfunction isNumericType(c: PColumnSpec): boolean {\n return c.valueType === 'Double' || c.valueType === 'Int' || c.valueType === 'Float' || c.valueType === 'Long';\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n metrics: [\n {\n type: 'observed',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'shannonWiener',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'chao1',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'gini',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n {\n type: 'd50',\n downsampling: {\n type: 'hypergeometric',\n valueChooser: 'auto',\n },\n },\n ],\n })\n\n .withUiState<UiState>({\n blockTitle: 'Repertoire Diversity',\n graphState: {\n title: 'Repertoire Diversity',\n template: 'bar',\n currentTab: null,\n },\n\n tableState: {\n gridState: {},\n pTableParams: {\n sorting: [],\n filters: [],\n },\n },\n })\n\n .argsValid((ctx) => ctx.args.abundanceRef !== undefined)\n\n .output('abundanceOptions', (ctx) =>\n ctx.resultPool.getOptions([{\n axes: [\n { name: 'pl7.app/sampleId' },\n { },\n ],\n annotations: {\n 'pl7.app/isAbundance': 'true',\n 'pl7.app/abundance/normalized': 'false',\n 'pl7.app/abundance/isPrimary': 'true',\n },\n },\n ]),\n )\n\n .output('pt', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPlDataTable(ctx, pCols, ctx.uiState?.tableState);\n })\n\n .output('pf', (ctx) => {\n const pCols = ctx.outputs?.resolve('pf')?.getPColumns();\n if (pCols === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, pCols);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title((ctx) => ctx.uiState?.blockTitle ?? 'Repertoire Diversity')\n\n .sections((_) => [\n { type: 'link', href: '/', label: 'Main' },\n { type: 'link', href: '/diversityGraph', label: 'Diversity Graph' },\n ])\n\n .done();\n\nexport type BlockOutputs = InferOutputsType<typeof model>;\n"]}