@platforma-open/milaboratories.mixcr-amplicon-alignment.workflow 1.10.3 → 1.12.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.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/work/mixcr-amplicon-alignment/mixcr-amplicon-alignment/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow@1.10.3 build /home/runner/work/mixcr-amplicon-alignment/mixcr-amplicon-alignment/workflow
3
+ > @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow@1.12.0 build /home/runner/work/mixcr-amplicon-alignment/mixcr-amplicon-alignment/workflow
4
4
  > rm -rf dist && pl-tengo check && pl-tengo build
5
5
 
6
6
  Processing "src/aggregate-by-clonotype-key.tpl.tengo"...
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow
2
2
 
3
+ ## 1.12.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 75ca0ce: change isProductive column values to true and false, sdk update
8
+
9
+ ## 1.11.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 4f1e226: export of raw mixcr data added
14
+
15
+ ### Patch Changes
16
+
17
+ - 3d3e04d: updating dependencies
18
+
3
19
  ## 1.10.3
4
20
 
5
21
  ### Patch Changes
@@ -508,7 +508,7 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
508
508
  annotations: a(orderP, variant.visibility, {
509
509
  "pl7.app/label": variant.label,
510
510
  "pl7.app/isDiscreteFilter": "true",
511
- "pl7.app/discreteValues": string(json.encode(["True", "False"])) } )
511
+ "pl7.app/discreteValues": string(json.encode(["true", "false"])) } )
512
512
  }
513
513
  }
514
514
  ]
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.mixcr-amplicon-alignment.workflow",
3
- "version": "1.10.3",
3
+ "version": "1.12.0",
4
4
  "description": "MiXCR Amplicon Alignment Workflow",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@platforma-sdk/workflow-tengo": "^5.4.2",
7
+ "@platforma-sdk/workflow-tengo": "^5.5.9",
8
8
  "@platforma-open/milaboratories.software-mixcr": "4.7.0-235-develop",
9
9
  "@platforma-open/milaboratories.software-repseqio": "^2.5.0-13-master"
10
10
  },
11
11
  "devDependencies": {
12
- "@platforma-sdk/tengo-builder": "^2.3.2",
13
- "@platforma-sdk/test": "^1.44.19",
12
+ "@platforma-sdk/tengo-builder": "^2.3.3",
13
+ "@platforma-sdk/test": "^1.45.11",
14
14
  "vitest": "^2.1.8"
15
15
  },
16
16
  "scripts": {
@@ -508,7 +508,7 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
508
508
  annotations: a(orderP, variant.visibility, {
509
509
  "pl7.app/label": variant.label,
510
510
  "pl7.app/isDiscreteFilter": "true",
511
- "pl7.app/discreteValues": string(json.encode(["True", "False"])) } )
511
+ "pl7.app/discreteValues": string(json.encode(["true", "false"])) } )
512
512
  }
513
513
  }
514
514
  ]
@@ -114,6 +114,7 @@ wf.body(func(args) {
114
114
  clones: pframes.exportFrame(runMixcr.output("clones")),
115
115
  clns: runMixcr.output("clns.data"),
116
116
  progress: runMixcr.output("progress.data"),
117
+ clonotypeTables: pframes.exportFrame(runMixcr.output("clonotypeTables")),
117
118
  debugOutput: debugOutput
118
119
  }
119
120
 
@@ -6,6 +6,7 @@ slices := import("@platforma-sdk/workflow-tengo:slices")
6
6
  assets := import("@platforma-sdk/workflow-tengo:assets")
7
7
  exec := import("@platforma-sdk/workflow-tengo:exec")
8
8
  pt := import("@platforma-sdk/workflow-tengo:pt")
9
+ clonotypeLabel := import(":clonotype-label")
9
10
 
10
11
  json := import("json")
11
12
 
@@ -20,6 +21,7 @@ self.body(func(inputs) {
20
21
  exportArgs := params.exportArgs
21
22
 
22
23
  clonotypeKeyColumns := params.clonotypeKeyColumns
24
+ mainIsProductiveColumn := params.mainIsProductiveColumn
23
25
 
24
26
  hashKeyDerivationExpressionPt := func(sourceColumns) {
25
27
  return pt.concatStr(
@@ -86,10 +88,22 @@ self.body(func(inputs) {
86
88
  dfMain.addColumns(
87
89
  pt.col("readCount").round().cast("Long").alias("readCount")
88
90
  )
91
+ // Normalize isProductive column casing to strictly "true"/"false"
92
+ if !is_undefined(mainIsProductiveColumn) {
93
+ dfMain.addColumns(
94
+ pt.when(pt.col(mainIsProductiveColumn).strToUpper().eq("TRUE")).
95
+ then(pt.lit("true")).
96
+ otherwise(pt.lit("false")).
97
+ alias(mainIsProductiveColumn)
98
+ )
99
+ }
89
100
  dfMain.addColumns(
90
101
  hashKeyDerivationExpressionPt(clonotypeKeyColumns).alias("clonotypeKey")
91
102
  )
92
103
 
104
+ // Generate clonotypeLabel (C-XXXXX or C-XXXXX-RANK) from clonotypeKey
105
+ dfMain = clonotypeLabel.addClonotypeLabelColumnsPt(dfMain, "clonotypeKey", "clonotypeLabel", pt)
106
+
93
107
  dfMain.save("output.tsv")
94
108
  ptablerResultMain := wfMain.run()
95
109
  processedTsv := ptablerResultMain.getFile("output.tsv")
@@ -183,6 +183,8 @@ self.body(func(inputs) {
183
183
  spec: { domain: { "pl7.app/vdj/chain": chains } }
184
184
  }) ]
185
185
 
186
+ clonotypeTables := pframes.pFrameBuilder()
187
+
186
188
  exportOutputs := [ {
187
189
  type: "Resource",
188
190
  spec: {
@@ -220,12 +222,15 @@ self.body(func(inputs) {
220
222
  clonotypeKeyColumns: clonotypeKeyColumns,
221
223
  exportArgs: exportArgs,
222
224
  referenceLibrary: referenceLibrary,
223
- mixcrChains: mixcrChains
225
+ mixcrChains: mixcrChains,
226
+ mainIsProductiveColumn: mainIsProductiveColumn
224
227
  }
225
228
  }
226
229
  }
227
230
  )
228
231
 
232
+ clonotypeTables.add(mixcrChains, exportResults.outputSpec("clonotypeTable"), exportResults.outputData("clonotypeTable"))
233
+
229
234
  // Aggregate by clonotype key
230
235
  aggregationOutputs := [ {
231
236
  type: "Resource",
@@ -293,6 +298,7 @@ self.body(func(inputs) {
293
298
 
294
299
  "progress.data": mixcrResults.outputData("log"),
295
300
 
296
- clones: clones.build()
301
+ clones: clones.build(),
302
+ clonotypeTables: clonotypeTables.build()
297
303
  }
298
304
  })