@platforma-open/milaboratories.mixcr-amplicon-alignment.workflow 1.21.5 → 1.21.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.
@@ -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.21.5 build /home/runner/work/mixcr-amplicon-alignment/mixcr-amplicon-alignment/workflow
3
+ > @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow@1.21.7 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,17 @@
1
1
  # @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow
2
2
 
3
+ ## 1.21.7
4
+
5
+ ### Patch Changes
6
+
7
+ - b67eb61: Upgrade MiXCR to 4.7.0-343-develop — packed NucleotideSequence storage for 4x memory reduction
8
+
9
+ ## 1.21.6
10
+
11
+ ### Patch Changes
12
+
13
+ - a463f4f: Fix memory allocation for aggregation step and correct GB/GiB unit mismatch across all workflow templates
14
+
3
15
  ## 1.21.5
4
16
 
5
17
  ### Patch Changes
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.mixcr-amplicon-alignment.workflow",
3
- "version": "1.21.5",
3
+ "version": "1.21.7",
4
4
  "description": "MiXCR Amplicon Alignment Workflow",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@platforma-sdk/workflow-tengo": "5.11.0",
8
- "@platforma-open/milaboratories.software-mixcr": "4.7.0-317-develop",
8
+ "@platforma-open/milaboratories.software-mixcr": "4.7.0-343-develop",
9
9
  "@platforma-open/milaboratories.software-repseqio": "^2.5.0-13-master"
10
10
  },
11
11
  "devDependencies": {
@@ -31,9 +31,18 @@ self.body(func(inputs) {
31
31
  inputMap := inputData.inputs()
32
32
  numberOfSamples := len(inputMap)
33
33
 
34
+ baseMemGB := 32
35
+ if !is_undefined(inputs.perProcessMemGB) {
36
+ baseMemGB = inputs.perProcessMemGB / 2
37
+ }
38
+
39
+ perSampleMem := int(math.max(2, baseMemGB / 10))
40
+ effectiveSamples := int(math.max(numberOfSamples, 3))
41
+ memGB := int(math.min(312, math.max(baseMemGB * 3 / 2, effectiveSamples * perSampleMem)))
42
+
34
43
  wf := pt.workflow().
35
44
  inMediumQueue().
36
- mem(int(math.max(numberOfSamples, 64)) * units.GB).
45
+ mem(memGB * units.GiB).
37
46
  cpu(int(math.max(numberOfSamples, 32)))
38
47
 
39
48
  dataFrames := []
@@ -204,7 +204,7 @@ self.body(func(inputs) {
204
204
  baseMemGB = perProcessMemGB
205
205
  }
206
206
  memGB := func(floorGB, divisor) {
207
- return string(int(math.max(floorGB, baseMemGB / divisor))) + "GB"
207
+ return string(int(math.max(floorGB, baseMemGB / divisor))) + "GiB"
208
208
  }
209
209
 
210
210
  // Count clonotypes filtered by stop codons and out-of-frame per sample
@@ -143,9 +143,9 @@ self.body(func(inputs) {
143
143
  // Memory limit per process
144
144
  if !is_undefined(perProcessMemGB) {
145
145
  // memory per process was set in "Advanced Settings" block directly
146
- mixcrCmdBuilder.mem(string(perProcessMemGB) + "GB")
146
+ mixcrCmdBuilder.mem(string(perProcessMemGB) + "GiB")
147
147
  } else {
148
- mixcrCmdBuilder.mem("64GB")
148
+ mixcrCmdBuilder.mem("64GiB")
149
149
  }
150
150
 
151
151
  if !is_undefined(limitInput) {
@@ -179,11 +179,11 @@ self.body(func(inputs) {
179
179
 
180
180
  // Memory for downstream operations, linked to user override with hardcoded floors
181
181
  baseMemGB := 64
182
- if !is_undefined(params.perProcessMemGB) {
183
- baseMemGB = params.perProcessMemGB
182
+ if !is_undefined(inputs.perProcessMemGB) {
183
+ baseMemGB = inputs.perProcessMemGB
184
184
  }
185
185
  memGB := func(floorGB, divisor) {
186
- return string(int(math.max(floorGB, baseMemGB / divisor))) + "GB"
186
+ return string(int(math.max(floorGB, baseMemGB / divisor))) + "GiB"
187
187
  }
188
188
 
189
189
  hashKeyDerivationExpressionPt := func(sourceColumns) {
@@ -77,9 +77,9 @@ self.body(func(inputs) {
77
77
  if !is_undefined(perProcessMemGB) {
78
78
  baseMemGB = perProcessMemGB
79
79
  }
80
- // Returns max(floor, baseMemGB / divisor) as a string like "32GB"
80
+ // Returns max(floor, baseMemGB / divisor) as a string like "32GiB"
81
81
  memGB := func(floorGB, divisor) {
82
- return string(int(math.max(floorGB, baseMemGB / divisor))) + "GB"
82
+ return string(int(math.max(floorGB, baseMemGB / divisor))) + "GiB"
83
83
  }
84
84
 
85
85
  fileExtension := inputSpec.domain["pl7.app/fileExtension"]
@@ -285,9 +285,11 @@ self.body(func(inputs) {
285
285
  cdr3SeqColumns: cdr3SeqColumns,
286
286
  stopCodonTypes: params.stopCodonTypes,
287
287
  stopCodonReplacements: params.stopCodonReplacements,
288
- perProcessMemGB: perProcessMemGB,
289
288
  isLibraryFileGzipped: params.isLibraryFileGzipped
290
289
  }, { removeUndefs: true })
290
+ },
291
+ metaExtra: {
292
+ perProcessMemGB: perProcessMemGB
291
293
  }
292
294
  }
293
295
  )
@@ -339,6 +341,9 @@ self.body(func(inputs) {
339
341
  schemaPerClonotypeAggregates: columnsToSchema(columnsSpecPerClonotypeAggregates),
340
342
  schemaPerSample: columnsToSchema(columnsSpecPerSample)
341
343
  }
344
+ },
345
+ metaExtra: {
346
+ perProcessMemGB: perProcessMemGB
342
347
  }
343
348
  }
344
349
  )