@platforma-open/milaboratories.immune-assay-data.model 1.5.3 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-type-check.log +2 -2
- package/CHANGELOG.md +13 -0
- package/dist/bundle.js +1374 -988
- package/dist/bundle.js.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/model.json +1 -1
- package/package.json +7 -7
- package/src/index.ts +6 -1
package/dist/index.cjs
CHANGED
|
@@ -35,6 +35,7 @@ const model = model$1.BlockModel.create()
|
|
|
35
35
|
similarityType: 'alignment-score',
|
|
36
36
|
},
|
|
37
37
|
selectedColumns: [],
|
|
38
|
+
lessSensitive: false,
|
|
38
39
|
})
|
|
39
40
|
.withUiState({
|
|
40
41
|
tableState: model$1.createPlDataTableStateV2(),
|
|
@@ -58,7 +59,7 @@ const model = model$1.BlockModel.create()
|
|
|
58
59
|
{ name: 'pl7.app/vdj/scClonotypeKey' },
|
|
59
60
|
],
|
|
60
61
|
annotations: { 'pl7.app/isAnchor': 'true' },
|
|
61
|
-
}], {
|
|
62
|
+
}], {}))
|
|
62
63
|
.output('targetOptions', (ctx) => {
|
|
63
64
|
const ref = ctx.args.datasetRef;
|
|
64
65
|
if (ref === undefined)
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import type {\n DataInfo,\n ImportFileHandle,\n PColumn,\n PColumnSpec,\n PColumnValues,\n PlDataTableStateV2,\n PlMultiSequenceAlignmentModel,\n PlRef,\n RenderCtxLegacy,\n SUniversalPColumnId,\n TreeNodeAccessor,\n} from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPFrameForGraphs,\n createPlDataTableStateV2,\n createPlDataTableV2,\n} from '@platforma-sdk/model';\nimport { getDefaultBlockLabel } from './label';\n\ntype Settings = {\n coverageThreshold: number; // fraction of aligned residues required\n identity: number;\n similarityType: 'sequence-identity' | 'alignment-score';\n};\n\nexport type ImportColumnInfo = {\n header: string;\n type: 'Int' | 'Double' | 'String';\n /** If this column is a sequence column, the type of the sequence */\n sequenceType?: 'nucleotide' | 'aminoacid';\n};\n\nexport type BlockArgs = {\n defaultBlockLabel: string;\n customBlockLabel: string;\n datasetRef?: PlRef;\n targetRef?: SUniversalPColumnId;\n fileHandle?: ImportFileHandle;\n fileExtension?: string;\n importColumns?: ImportColumnInfo[];\n sequenceColumnHeader?: string;\n selectedColumns: string[];\n settings: Settings;\n};\n\nexport type UiState = {\n fileImportError?: string;\n tableState: PlDataTableStateV2;\n alignmentModel: PlMultiSequenceAlignmentModel;\n};\n\ntype Column = PColumn<DataInfo<TreeNodeAccessor> | TreeNodeAccessor | PColumnValues>;\n\ntype Columns = {\n props: Column[];\n};\n\nfunction getColumns(ctx: RenderCtxLegacy<BlockArgs, UiState>): Columns | undefined {\n const anchor = ctx.args.datasetRef;\n if (anchor === undefined)\n return undefined;\n\n const anchorSpec = ctx.resultPool.getPColumnSpecByRef(anchor);\n if (anchorSpec === undefined)\n return undefined;\n\n // all clone properties\n const props = (ctx.resultPool.getAnchoredPColumns(\n { main: anchor },\n [\n {\n axes: [{ anchor: 'main', idx: 1 }],\n },\n ]) ?? [])\n .filter((p) => p.spec.annotations?.['pl7.app/sequence/isAnnotation'] !== 'true');\n\n return {\n props: props,\n };\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n defaultBlockLabel: getDefaultBlockLabel({\n similarityType: 'alignment-score',\n identity: 0.9,\n coverageThreshold: 0.95,\n }),\n customBlockLabel: '',\n settings: {\n coverageThreshold: 0.95, // default value matching MMseqs2 default\n identity: 0.9,\n similarityType: 'alignment-score',\n },\n selectedColumns: [],\n })\n\n .withUiState<UiState>({\n tableState: createPlDataTableStateV2(),\n alignmentModel: {},\n })\n\n .argsValid((ctx) =>\n ctx.args.datasetRef !== undefined\n && ctx.args.fileHandle !== undefined\n && ctx.args.importColumns !== undefined\n && ctx.args.sequenceColumnHeader !== undefined\n && ctx.args.targetRef !== undefined\n && ctx.uiState.fileImportError === undefined,\n )\n\n .output('datasetOptions', (ctx) =>\n ctx.resultPool.getOptions([{\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/clonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }, {\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/scClonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }], { refsWithEnrichments: true }),\n )\n\n .output('targetOptions', (ctx) => {\n const ref = ctx.args.datasetRef;\n if (ref === undefined) return undefined;\n\n const isSingleCell = ctx.resultPool.getPColumnSpecByRef(ref)?.axesSpec[1].name === 'pl7.app/vdj/scClonotypeKey';\n const sequenceMatchers = [];\n // const allowedFeatures = ['CDR1', 'CDR2', 'CDR3', 'FR1', 'FR2',\n // 'FR3', 'FR4', 'VDJRegion'];\n // for (const feature of allowedFeatures) {\n if (isSingleCell) {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n 'pl7.app/vdj/scClonotypeChain/index': 'primary',\n },\n });\n } else {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n },\n });\n }\n\n return ctx.resultPool.getCanonicalOptions(\n { main: ref },\n sequenceMatchers,\n {\n ignoreMissingDomains: true,\n labelOps: {\n includeNativeLabel: true,\n },\n });\n })\n\n .output(\n 'dataImportHandle',\n (ctx) => ctx.outputs?.resolve('dataImportHandle')?.getImportProgress(),\n { isActive: true },\n )\n\n .outputWithStatus('table', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPlDataTableV2(\n ctx,\n cols,\n ctx.uiState.tableState,\n );\n })\n\n .output('pf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPFrameForGraphs(ctx, cols);\n })\n\n .output('assaySequenceSpec', (ctx): PColumnSpec | undefined => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n // Return only sequence column\n return cols.find((c) => c.spec.name === 'pl7.app/vdj/sequence'\n && c.spec.axesSpec[0].name === 'pl7.app/vdj/assay/sequenceId')?.spec;\n })\n\n .output('msaPf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n const msaCols = ctx.outputs?.resolve('assayLinkerPframe')?.getPColumns();\n if (!msaCols) return undefined;\n\n const columns = getColumns(ctx);\n if (columns === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, [...msaCols, ...cols, ...columns.props]);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title(() => 'Immune Assay Data')\n\n .subtitle((ctx) => ctx.args.customBlockLabel || ctx.args.defaultBlockLabel)\n\n .sections((_ctx) => ([\n { type: 'link', href: '/', label: 'Main' },\n ]))\n\n .done(2);\n\nexport { getDefaultBlockLabel } from './label';\n"],"names":["BlockModel","getDefaultBlockLabel","createPlDataTableStateV2","createPlDataTableV2","createPFrameForGraphs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import type {\n DataInfo,\n ImportFileHandle,\n PColumn,\n PColumnSpec,\n PColumnValues,\n PlDataTableStateV2,\n PlMultiSequenceAlignmentModel,\n PlRef,\n RenderCtxLegacy,\n SUniversalPColumnId,\n TreeNodeAccessor,\n} from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPFrameForGraphs,\n createPlDataTableStateV2,\n createPlDataTableV2,\n} from '@platforma-sdk/model';\nimport { getDefaultBlockLabel } from './label';\n\ntype Settings = {\n coverageThreshold: number; // fraction of aligned residues required\n identity: number;\n similarityType: 'sequence-identity' | 'alignment-score';\n};\n\nexport type ImportColumnInfo = {\n header: string;\n type: 'Int' | 'Double' | 'String';\n /** If this column is a sequence column, the type of the sequence */\n sequenceType?: 'nucleotide' | 'aminoacid';\n};\n\nexport type BlockArgs = {\n defaultBlockLabel: string;\n customBlockLabel: string;\n datasetRef?: PlRef;\n targetRef?: SUniversalPColumnId;\n fileHandle?: ImportFileHandle;\n fileExtension?: string;\n detectedXsvType?: 'csv' | 'tsv';\n importColumns?: ImportColumnInfo[];\n sequenceColumnHeader?: string;\n selectedColumns: string[];\n settings: Settings;\n lessSensitive: boolean;\n mem?: number;\n cpu?: number;\n};\n\nexport type UiState = {\n fileImportError?: string;\n tableState: PlDataTableStateV2;\n alignmentModel: PlMultiSequenceAlignmentModel;\n};\n\ntype Column = PColumn<DataInfo<TreeNodeAccessor> | TreeNodeAccessor | PColumnValues>;\n\ntype Columns = {\n props: Column[];\n};\n\nfunction getColumns(ctx: RenderCtxLegacy<BlockArgs, UiState>): Columns | undefined {\n const anchor = ctx.args.datasetRef;\n if (anchor === undefined)\n return undefined;\n\n const anchorSpec = ctx.resultPool.getPColumnSpecByRef(anchor);\n if (anchorSpec === undefined)\n return undefined;\n\n // all clone properties\n const props = (ctx.resultPool.getAnchoredPColumns(\n { main: anchor },\n [\n {\n axes: [{ anchor: 'main', idx: 1 }],\n },\n ]) ?? [])\n .filter((p) => p.spec.annotations?.['pl7.app/sequence/isAnnotation'] !== 'true');\n\n return {\n props: props,\n };\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n defaultBlockLabel: getDefaultBlockLabel({\n similarityType: 'alignment-score',\n identity: 0.9,\n coverageThreshold: 0.95,\n }),\n customBlockLabel: '',\n settings: {\n coverageThreshold: 0.95, // default value matching MMseqs2 default\n identity: 0.9,\n similarityType: 'alignment-score',\n },\n selectedColumns: [],\n lessSensitive: false,\n })\n\n .withUiState<UiState>({\n tableState: createPlDataTableStateV2(),\n alignmentModel: {},\n })\n\n .argsValid((ctx) =>\n ctx.args.datasetRef !== undefined\n && ctx.args.fileHandle !== undefined\n && ctx.args.importColumns !== undefined\n && ctx.args.sequenceColumnHeader !== undefined\n && ctx.args.targetRef !== undefined\n && ctx.uiState.fileImportError === undefined,\n )\n\n .output('datasetOptions', (ctx) =>\n ctx.resultPool.getOptions([{\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/clonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }, {\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/scClonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }], {}),\n )\n\n .output('targetOptions', (ctx) => {\n const ref = ctx.args.datasetRef;\n if (ref === undefined) return undefined;\n\n const isSingleCell = ctx.resultPool.getPColumnSpecByRef(ref)?.axesSpec[1].name === 'pl7.app/vdj/scClonotypeKey';\n const sequenceMatchers = [];\n // const allowedFeatures = ['CDR1', 'CDR2', 'CDR3', 'FR1', 'FR2',\n // 'FR3', 'FR4', 'VDJRegion'];\n // for (const feature of allowedFeatures) {\n if (isSingleCell) {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n 'pl7.app/vdj/scClonotypeChain/index': 'primary',\n },\n });\n } else {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n },\n });\n }\n\n return ctx.resultPool.getCanonicalOptions(\n { main: ref },\n sequenceMatchers,\n {\n ignoreMissingDomains: true,\n labelOps: {\n includeNativeLabel: true,\n },\n });\n })\n\n .output(\n 'dataImportHandle',\n (ctx) => ctx.outputs?.resolve('dataImportHandle')?.getImportProgress(),\n { isActive: true },\n )\n\n .outputWithStatus('table', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPlDataTableV2(\n ctx,\n cols,\n ctx.uiState.tableState,\n );\n })\n\n .output('pf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPFrameForGraphs(ctx, cols);\n })\n\n .output('assaySequenceSpec', (ctx): PColumnSpec | undefined => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n // Return only sequence column\n return cols.find((c) => c.spec.name === 'pl7.app/vdj/sequence'\n && c.spec.axesSpec[0].name === 'pl7.app/vdj/assay/sequenceId')?.spec;\n })\n\n .output('msaPf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n const msaCols = ctx.outputs?.resolve('assayLinkerPframe')?.getPColumns();\n if (!msaCols) return undefined;\n\n const columns = getColumns(ctx);\n if (columns === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, [...msaCols, ...cols, ...columns.props]);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title(() => 'Immune Assay Data')\n\n .subtitle((ctx) => ctx.args.customBlockLabel || ctx.args.defaultBlockLabel)\n\n .sections((_ctx) => ([\n { type: 'link', href: '/', label: 'Main' },\n ]))\n\n .done(2);\n\nexport { getDefaultBlockLabel } from './label';\n"],"names":["BlockModel","getDefaultBlockLabel","createPlDataTableStateV2","createPlDataTableV2","createPFrameForGraphs"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,10 +17,14 @@ export type BlockArgs = {
|
|
|
17
17
|
targetRef?: SUniversalPColumnId;
|
|
18
18
|
fileHandle?: ImportFileHandle;
|
|
19
19
|
fileExtension?: string;
|
|
20
|
+
detectedXsvType?: 'csv' | 'tsv';
|
|
20
21
|
importColumns?: ImportColumnInfo[];
|
|
21
22
|
sequenceColumnHeader?: string;
|
|
22
23
|
selectedColumns: string[];
|
|
23
24
|
settings: Settings;
|
|
25
|
+
lessSensitive: boolean;
|
|
26
|
+
mem?: number;
|
|
27
|
+
cpu?: number;
|
|
24
28
|
};
|
|
25
29
|
export type UiState = {
|
|
26
30
|
fileImportError?: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAIhB,kBAAkB,EAClB,6BAA6B,EAC7B,KAAK,EAEL,mBAAmB,EAEpB,MAAM,sBAAsB,CAAC;AAS9B,KAAK,QAAQ,GAAG;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClC,oEAAoE;IACpE,YAAY,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAIhB,kBAAkB,EAClB,6BAA6B,EAC7B,KAAK,EAEL,mBAAmB,EAEpB,MAAM,sBAAsB,CAAC;AAS9B,KAAK,QAAQ,GAAG;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClC,oEAAoE;IACpE,YAAY,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAChC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,6BAA6B,CAAC;CAC/C,CAAC;AAgCF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAgKR,CAAC;AAEX,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -33,6 +33,7 @@ const model = BlockModel.create()
|
|
|
33
33
|
similarityType: 'alignment-score',
|
|
34
34
|
},
|
|
35
35
|
selectedColumns: [],
|
|
36
|
+
lessSensitive: false,
|
|
36
37
|
})
|
|
37
38
|
.withUiState({
|
|
38
39
|
tableState: createPlDataTableStateV2(),
|
|
@@ -56,7 +57,7 @@ const model = BlockModel.create()
|
|
|
56
57
|
{ name: 'pl7.app/vdj/scClonotypeKey' },
|
|
57
58
|
],
|
|
58
59
|
annotations: { 'pl7.app/isAnchor': 'true' },
|
|
59
|
-
}], {
|
|
60
|
+
}], {}))
|
|
60
61
|
.output('targetOptions', (ctx) => {
|
|
61
62
|
const ref = ctx.args.datasetRef;
|
|
62
63
|
if (ref === undefined)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n DataInfo,\n ImportFileHandle,\n PColumn,\n PColumnSpec,\n PColumnValues,\n PlDataTableStateV2,\n PlMultiSequenceAlignmentModel,\n PlRef,\n RenderCtxLegacy,\n SUniversalPColumnId,\n TreeNodeAccessor,\n} from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPFrameForGraphs,\n createPlDataTableStateV2,\n createPlDataTableV2,\n} from '@platforma-sdk/model';\nimport { getDefaultBlockLabel } from './label';\n\ntype Settings = {\n coverageThreshold: number; // fraction of aligned residues required\n identity: number;\n similarityType: 'sequence-identity' | 'alignment-score';\n};\n\nexport type ImportColumnInfo = {\n header: string;\n type: 'Int' | 'Double' | 'String';\n /** If this column is a sequence column, the type of the sequence */\n sequenceType?: 'nucleotide' | 'aminoacid';\n};\n\nexport type BlockArgs = {\n defaultBlockLabel: string;\n customBlockLabel: string;\n datasetRef?: PlRef;\n targetRef?: SUniversalPColumnId;\n fileHandle?: ImportFileHandle;\n fileExtension?: string;\n importColumns?: ImportColumnInfo[];\n sequenceColumnHeader?: string;\n selectedColumns: string[];\n settings: Settings;\n};\n\nexport type UiState = {\n fileImportError?: string;\n tableState: PlDataTableStateV2;\n alignmentModel: PlMultiSequenceAlignmentModel;\n};\n\ntype Column = PColumn<DataInfo<TreeNodeAccessor> | TreeNodeAccessor | PColumnValues>;\n\ntype Columns = {\n props: Column[];\n};\n\nfunction getColumns(ctx: RenderCtxLegacy<BlockArgs, UiState>): Columns | undefined {\n const anchor = ctx.args.datasetRef;\n if (anchor === undefined)\n return undefined;\n\n const anchorSpec = ctx.resultPool.getPColumnSpecByRef(anchor);\n if (anchorSpec === undefined)\n return undefined;\n\n // all clone properties\n const props = (ctx.resultPool.getAnchoredPColumns(\n { main: anchor },\n [\n {\n axes: [{ anchor: 'main', idx: 1 }],\n },\n ]) ?? [])\n .filter((p) => p.spec.annotations?.['pl7.app/sequence/isAnnotation'] !== 'true');\n\n return {\n props: props,\n };\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n defaultBlockLabel: getDefaultBlockLabel({\n similarityType: 'alignment-score',\n identity: 0.9,\n coverageThreshold: 0.95,\n }),\n customBlockLabel: '',\n settings: {\n coverageThreshold: 0.95, // default value matching MMseqs2 default\n identity: 0.9,\n similarityType: 'alignment-score',\n },\n selectedColumns: [],\n })\n\n .withUiState<UiState>({\n tableState: createPlDataTableStateV2(),\n alignmentModel: {},\n })\n\n .argsValid((ctx) =>\n ctx.args.datasetRef !== undefined\n && ctx.args.fileHandle !== undefined\n && ctx.args.importColumns !== undefined\n && ctx.args.sequenceColumnHeader !== undefined\n && ctx.args.targetRef !== undefined\n && ctx.uiState.fileImportError === undefined,\n )\n\n .output('datasetOptions', (ctx) =>\n ctx.resultPool.getOptions([{\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/clonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }, {\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/scClonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }], { refsWithEnrichments: true }),\n )\n\n .output('targetOptions', (ctx) => {\n const ref = ctx.args.datasetRef;\n if (ref === undefined) return undefined;\n\n const isSingleCell = ctx.resultPool.getPColumnSpecByRef(ref)?.axesSpec[1].name === 'pl7.app/vdj/scClonotypeKey';\n const sequenceMatchers = [];\n // const allowedFeatures = ['CDR1', 'CDR2', 'CDR3', 'FR1', 'FR2',\n // 'FR3', 'FR4', 'VDJRegion'];\n // for (const feature of allowedFeatures) {\n if (isSingleCell) {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n 'pl7.app/vdj/scClonotypeChain/index': 'primary',\n },\n });\n } else {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n },\n });\n }\n\n return ctx.resultPool.getCanonicalOptions(\n { main: ref },\n sequenceMatchers,\n {\n ignoreMissingDomains: true,\n labelOps: {\n includeNativeLabel: true,\n },\n });\n })\n\n .output(\n 'dataImportHandle',\n (ctx) => ctx.outputs?.resolve('dataImportHandle')?.getImportProgress(),\n { isActive: true },\n )\n\n .outputWithStatus('table', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPlDataTableV2(\n ctx,\n cols,\n ctx.uiState.tableState,\n );\n })\n\n .output('pf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPFrameForGraphs(ctx, cols);\n })\n\n .output('assaySequenceSpec', (ctx): PColumnSpec | undefined => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n // Return only sequence column\n return cols.find((c) => c.spec.name === 'pl7.app/vdj/sequence'\n && c.spec.axesSpec[0].name === 'pl7.app/vdj/assay/sequenceId')?.spec;\n })\n\n .output('msaPf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n const msaCols = ctx.outputs?.resolve('assayLinkerPframe')?.getPColumns();\n if (!msaCols) return undefined;\n\n const columns = getColumns(ctx);\n if (columns === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, [...msaCols, ...cols, ...columns.props]);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title(() => 'Immune Assay Data')\n\n .subtitle((ctx) => ctx.args.customBlockLabel || ctx.args.defaultBlockLabel)\n\n .sections((_ctx) => ([\n { type: 'link', href: '/', label: 'Main' },\n ]))\n\n .done(2);\n\nexport { getDefaultBlockLabel } from './label';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n DataInfo,\n ImportFileHandle,\n PColumn,\n PColumnSpec,\n PColumnValues,\n PlDataTableStateV2,\n PlMultiSequenceAlignmentModel,\n PlRef,\n RenderCtxLegacy,\n SUniversalPColumnId,\n TreeNodeAccessor,\n} from '@platforma-sdk/model';\nimport {\n BlockModel,\n createPFrameForGraphs,\n createPlDataTableStateV2,\n createPlDataTableV2,\n} from '@platforma-sdk/model';\nimport { getDefaultBlockLabel } from './label';\n\ntype Settings = {\n coverageThreshold: number; // fraction of aligned residues required\n identity: number;\n similarityType: 'sequence-identity' | 'alignment-score';\n};\n\nexport type ImportColumnInfo = {\n header: string;\n type: 'Int' | 'Double' | 'String';\n /** If this column is a sequence column, the type of the sequence */\n sequenceType?: 'nucleotide' | 'aminoacid';\n};\n\nexport type BlockArgs = {\n defaultBlockLabel: string;\n customBlockLabel: string;\n datasetRef?: PlRef;\n targetRef?: SUniversalPColumnId;\n fileHandle?: ImportFileHandle;\n fileExtension?: string;\n detectedXsvType?: 'csv' | 'tsv';\n importColumns?: ImportColumnInfo[];\n sequenceColumnHeader?: string;\n selectedColumns: string[];\n settings: Settings;\n lessSensitive: boolean;\n mem?: number;\n cpu?: number;\n};\n\nexport type UiState = {\n fileImportError?: string;\n tableState: PlDataTableStateV2;\n alignmentModel: PlMultiSequenceAlignmentModel;\n};\n\ntype Column = PColumn<DataInfo<TreeNodeAccessor> | TreeNodeAccessor | PColumnValues>;\n\ntype Columns = {\n props: Column[];\n};\n\nfunction getColumns(ctx: RenderCtxLegacy<BlockArgs, UiState>): Columns | undefined {\n const anchor = ctx.args.datasetRef;\n if (anchor === undefined)\n return undefined;\n\n const anchorSpec = ctx.resultPool.getPColumnSpecByRef(anchor);\n if (anchorSpec === undefined)\n return undefined;\n\n // all clone properties\n const props = (ctx.resultPool.getAnchoredPColumns(\n { main: anchor },\n [\n {\n axes: [{ anchor: 'main', idx: 1 }],\n },\n ]) ?? [])\n .filter((p) => p.spec.annotations?.['pl7.app/sequence/isAnnotation'] !== 'true');\n\n return {\n props: props,\n };\n}\n\nexport const model = BlockModel.create()\n\n .withArgs<BlockArgs>({\n defaultBlockLabel: getDefaultBlockLabel({\n similarityType: 'alignment-score',\n identity: 0.9,\n coverageThreshold: 0.95,\n }),\n customBlockLabel: '',\n settings: {\n coverageThreshold: 0.95, // default value matching MMseqs2 default\n identity: 0.9,\n similarityType: 'alignment-score',\n },\n selectedColumns: [],\n lessSensitive: false,\n })\n\n .withUiState<UiState>({\n tableState: createPlDataTableStateV2(),\n alignmentModel: {},\n })\n\n .argsValid((ctx) =>\n ctx.args.datasetRef !== undefined\n && ctx.args.fileHandle !== undefined\n && ctx.args.importColumns !== undefined\n && ctx.args.sequenceColumnHeader !== undefined\n && ctx.args.targetRef !== undefined\n && ctx.uiState.fileImportError === undefined,\n )\n\n .output('datasetOptions', (ctx) =>\n ctx.resultPool.getOptions([{\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/clonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }, {\n axes: [\n { name: 'pl7.app/sampleId' },\n { name: 'pl7.app/vdj/scClonotypeKey' },\n ],\n annotations: { 'pl7.app/isAnchor': 'true' },\n }], {}),\n )\n\n .output('targetOptions', (ctx) => {\n const ref = ctx.args.datasetRef;\n if (ref === undefined) return undefined;\n\n const isSingleCell = ctx.resultPool.getPColumnSpecByRef(ref)?.axesSpec[1].name === 'pl7.app/vdj/scClonotypeKey';\n const sequenceMatchers = [];\n // const allowedFeatures = ['CDR1', 'CDR2', 'CDR3', 'FR1', 'FR2',\n // 'FR3', 'FR4', 'VDJRegion'];\n // for (const feature of allowedFeatures) {\n if (isSingleCell) {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n 'pl7.app/vdj/scClonotypeChain/index': 'primary',\n },\n });\n } else {\n sequenceMatchers.push({\n axes: [{ anchor: 'main', idx: 1 }],\n name: 'pl7.app/vdj/sequence',\n domain: {\n // 'pl7.app/vdj/feature': feature,\n },\n });\n }\n\n return ctx.resultPool.getCanonicalOptions(\n { main: ref },\n sequenceMatchers,\n {\n ignoreMissingDomains: true,\n labelOps: {\n includeNativeLabel: true,\n },\n });\n })\n\n .output(\n 'dataImportHandle',\n (ctx) => ctx.outputs?.resolve('dataImportHandle')?.getImportProgress(),\n { isActive: true },\n )\n\n .outputWithStatus('table', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPlDataTableV2(\n ctx,\n cols,\n ctx.uiState.tableState,\n );\n })\n\n .output('pf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n return createPFrameForGraphs(ctx, cols);\n })\n\n .output('assaySequenceSpec', (ctx): PColumnSpec | undefined => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n // Return only sequence column\n return cols.find((c) => c.spec.name === 'pl7.app/vdj/sequence'\n && c.spec.axesSpec[0].name === 'pl7.app/vdj/assay/sequenceId')?.spec;\n })\n\n .output('msaPf', (ctx) => {\n if (ctx.outputs?.resolve('emptyResults')?.getDataAsJson<boolean>()) {\n return undefined;\n }\n const cols = ctx.outputs?.resolve('table')?.getPColumns();\n if (cols === undefined)\n return undefined;\n\n const msaCols = ctx.outputs?.resolve('assayLinkerPframe')?.getPColumns();\n if (!msaCols) return undefined;\n\n const columns = getColumns(ctx);\n if (columns === undefined) {\n return undefined;\n }\n\n return createPFrameForGraphs(ctx, [...msaCols, ...cols, ...columns.props]);\n })\n\n .output('isRunning', (ctx) => ctx.outputs?.getIsReadyOrError() === false)\n\n .title(() => 'Immune Assay Data')\n\n .subtitle((ctx) => ctx.args.customBlockLabel || ctx.args.defaultBlockLabel)\n\n .sections((_ctx) => ([\n { type: 'link', href: '/', label: 'Main' },\n ]))\n\n .done(2);\n\nexport { getDefaultBlockLabel } from './label';\n"],"names":[],"mappings":"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"}
|