@platforma-open/milaboratories.mixcr-shm-trees.workflow 3.7.0 → 3.8.1

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.
@@ -1,12 +1,14 @@
1
1
  ll := import("@platforma-sdk/workflow-tengo:ll")
2
2
  smart := import("@platforma-sdk/workflow-tengo:smart")
3
3
  maps := import("@platforma-sdk/workflow-tengo:maps")
4
+ slices := import("@platforma-sdk/workflow-tengo:slices")
5
+ pSpec := import("@platforma-sdk/workflow-tengo:pframes.spec")
4
6
 
5
7
  json := import("json")
6
8
 
7
9
  _P_COLUMN_DATA_RESOURCE_MAP := { Name: "PColumnData/ResourceMap", Version: "1" }
8
10
 
9
- groupDataByDonorId := func(donorColumn, datasets) {
11
+ groupDataByDonorId := func(donorColumn, datasets, firstDatasetSpec) {
10
12
 
11
13
 
12
14
 
@@ -23,9 +25,11 @@ groupDataByDonorId := func(donorColumn, datasets) {
23
25
 
24
26
  donorColumnSpec := donorColumn.spec
25
27
 
28
+ trace := pSpec.makeTrace(firstDatasetSpec)
29
+
26
30
  sampleIdAxis := donorColumnSpec.axesSpec[0]
27
31
 
28
- resultSpec := maps.clone({
32
+ resultSpec := trace.inject(maps.clone({
29
33
  kind: "PColumn",
30
34
  name: "mixcr.com/clns",
31
35
  valueType: "File",
@@ -47,7 +51,7 @@ groupDataByDonorId := func(donorColumn, datasets) {
47
51
  }
48
52
  }
49
53
  ]
50
- }, { removeUndefs: true })
54
+ }, { removeUndefs: true }))
51
55
 
52
56
 
53
57
 
@@ -1,60 +1,65 @@
1
1
  ll := import("@platforma-sdk/workflow-tengo:ll")
2
2
  exec := import("@platforma-sdk/workflow-tengo:exec")
3
3
  assets := import("@platforma-sdk/workflow-tengo:assets")
4
+ slices := import("@platforma-sdk/workflow-tengo:slices")
4
5
  json := import("json")
5
- paggregateSw := assets.importSoftware("@platforma-open/milaboratories.software-ptransform:main")
6
6
 
7
+ paggregateSw := assets.importSoftware("@platforma-open/milaboratories.software-ptransform:main")
7
8
 
8
- ensureUniqueness := func(inputTsv, pfConvParams, ...aggParams) {
9
- keyColumns := []
10
- for axis in pfConvParams.axes {
11
- keyColumns = append(keyColumns, axis.column)
9
+ ensureUniquenessParamsFromPconvParams := func(pfConvParams) {
10
+ return {
11
+ axes: slices.map(pfConvParams.axes, func(axis) {
12
+ return axis.column
13
+ }),
14
+ columns: slices.map(pfConvParams.columns, func(col) {
15
+ return col.column
16
+ })
12
17
  }
18
+ }
19
+
20
+
21
+ ensureUniqueness := func(inputTsv, params, ...aggParams) {
22
+ keyColumns := params.axes
23
+ pickCols := params.columns
13
24
 
14
25
  aggregationWorkflow := undefined
15
26
  if len(aggParams) > 1 {
16
27
  pickCols := []
17
- for col in pfConvParams.columns {
28
+ for col in pickCols {
18
29
  pickCols = append(pickCols, [
19
- col.column,
20
- col.column
30
+ col,
31
+ col
21
32
  ]
22
33
  )
23
34
  }
24
35
 
25
36
  rankingCol := aggParams[1]
26
- aggregationWorkflow = {
27
- steps: [
28
- {
29
- type: "aggregate",
30
- groupBy: keyColumns,
31
- aggregations: [
32
- {
33
- type: aggParams[0],
34
- rankingCol: rankingCol,
35
- pickCols: pickCols
36
- }
37
- ]
38
- }
39
- ]
37
+ aggregationWorkflow = {
38
+ steps: [ {
39
+ type: "aggregate",
40
+ groupBy: keyColumns,
41
+ aggregations: [ {
42
+ type: aggParams[0],
43
+ rankingCol: rankingCol,
44
+ pickCols: pickCols
45
+ } ]
46
+ } ]
40
47
  }
41
48
  } else {
42
49
  aggregations := []
43
- for col in pfConvParams.columns {
50
+ for col in pickCols {
44
51
  aggregations = append(aggregations, {
45
52
  type: aggParams[0],
46
- src: col.column,
47
- dst: col.column
53
+ src: col,
54
+ dst: col
48
55
  })
49
56
  }
50
57
 
51
- aggregationWorkflow = { steps: [
52
- {
58
+ aggregationWorkflow = { steps: [ {
53
59
  type: "aggregate",
54
60
  groupBy: keyColumns,
55
61
  aggregations: aggregations
56
- }
57
- ]
62
+ } ]
58
63
  }
59
64
  }
60
65
 
@@ -71,5 +76,6 @@ ensureUniqueness := func(inputTsv, pfConvParams, ...aggParams) {
71
76
  }
72
77
 
73
78
  export ll.toStrict({
74
- ensureUniqueness: ensureUniqueness
75
- })
79
+ ensureUniqueness: ensureUniqueness,
80
+ ensureUniquenessParamsFromPconvParams: ensureUniquenessParamsFromPconvParams
81
+ })
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.mixcr-shm-trees.workflow",
3
- "version": "3.7.0",
3
+ "version": "3.8.1",
4
4
  "type": "module",
5
5
  "description": "Tengo-based template",
6
6
  "//": {
7
7
  "build": "node ./scripts/build-static.mjs src/pfconv_params.json src/pfconv_params.lib.tengo && rm -rf dist && pl-tengo check && pl-tengo build && ./create_tags.sh"
8
8
  },
9
9
  "dependencies": {
10
- "@platforma-sdk/workflow-tengo": "^4.2.2"
10
+ "@platforma-sdk/workflow-tengo": "^4.4.4"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@platforma-sdk/tengo-builder": "^2.1.3",
14
14
  "@platforma-open/milaboratories.software-mixcr": "4.7.0-165-develop",
15
15
  "@platforma-open/milaboratories.software-mitool": "2.3.1-5-main",
16
- "@platforma-open/milaboratories.software-ptransform": "^1.3.1",
17
- "@platforma-sdk/test": "^1.30.9",
16
+ "@platforma-open/milaboratories.software-ptransform": "^1.4.3",
17
+ "@platforma-sdk/test": "^1.30.32",
18
18
  "vitest": "~2.1.8",
19
19
  "typescript": "~5.6.3"
20
20
  },