@platforma-open/milaboratories.mixcr-clonotyping-2.workflow 3.17.1 → 3.18.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-clonotyping/mixcr-clonotyping/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@3.17.1 build /home/runner/work/mixcr-clonotyping/mixcr-clonotyping/workflow
3
+ > @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@3.18.0 build /home/runner/work/mixcr-clonotyping/mixcr-clonotyping/workflow
4
4
  > rm -rf dist && pl-tengo check && pl-tengo build
5
5
 
6
6
  info: Skipping unknown file type: test/columns.test.ts
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @platforma-open/milaboratories.mixcr-clonotyping.workflow
2
2
 
3
+ ## 3.18.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 070fc0b: Min quality checkbox, refactored error correction, dep updates
8
+
3
9
  ## 3.17.1
4
10
 
5
11
  ### Patch Changes
@@ -129,13 +129,18 @@ addSpec := func(columns, additionalSpec) {
129
129
 
130
130
 
131
131
 
132
- calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
132
+ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId, exportMinQuality) {
133
133
  ops := exportSpecOpsFromPreset(presetSpecForBack)
134
134
 
135
135
  assemblingFeature := ops.assemblingFeature
136
136
  cellTags := ops.cellTags
137
137
  hasUmi := ops.hasUmi
138
138
  splitByC := ops.splitByC
139
+
140
+
141
+ if is_undefined(exportMinQuality) {
142
+ exportMinQuality = false
143
+ }
139
144
 
140
145
  isSingleCell := !is_undefined(cellTags) && len(cellTags) > 0
141
146
  hashCellKey := isSingleCell && len(cellTags) > 1
@@ -482,7 +487,7 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
482
487
  }
483
488
  } ]
484
489
  exportArgs += [ [ "-" + alphabetShortMixcr + "Feature" + imputedU, featureInFrameU ] ]
485
- if !isImputed && !isAminoAcid {
490
+ if !isImputed && !isAminoAcid && exportMinQuality {
486
491
  columnsSpecPerClonotypeNoAggregates += [ {
487
492
  column: "minQual" + featureU,
488
493
  id: "min-qual-" + featureL,
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.mixcr-clonotyping-2.workflow",
3
- "version": "3.17.1",
3
+ "version": "3.18.0",
4
4
  "description": "Tengo-based template",
5
5
  "dependencies": {
6
6
  "@platforma-sdk/workflow-tengo": "^5.6.6",
@@ -129,13 +129,18 @@ addSpec := func(columns, additionalSpec) {
129
129
  // Ordering rules
130
130
  // AA Sequences
131
131
 
132
- calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
132
+ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId, exportMinQuality) {
133
133
  ops := exportSpecOpsFromPreset(presetSpecForBack)
134
134
 
135
135
  assemblingFeature := ops.assemblingFeature
136
136
  cellTags := ops.cellTags
137
137
  hasUmi := ops.hasUmi
138
138
  splitByC := ops.splitByC
139
+
140
+ // Default to false if not provided
141
+ if is_undefined(exportMinQuality) {
142
+ exportMinQuality = false
143
+ }
139
144
 
140
145
  isSingleCell := !is_undefined(cellTags) && len(cellTags) > 0
141
146
  hashCellKey := isSingleCell && len(cellTags) > 1
@@ -482,7 +487,7 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
482
487
  }
483
488
  } ]
484
489
  exportArgs += [ [ "-" + alphabetShortMixcr + "Feature" + imputedU, featureInFrameU ] ]
485
- if !isImputed && !isAminoAcid {
490
+ if !isImputed && !isAminoAcid && exportMinQuality {
486
491
  columnsSpecPerClonotypeNoAggregates += [ {
487
492
  column: "minQual" + featureU,
488
493
  id: "min-qual-" + featureL,
@@ -122,7 +122,7 @@ wf.body(func(args) {
122
122
  limitInput: limitInput,
123
123
  perProcessMemGB: perProcessMemGB,
124
124
  perProcessCPUs: perProcessCPUs,
125
- highDiversityLibrary: args.highDiversityLibrary,
125
+ cloneClusteringMode: args.cloneClusteringMode,
126
126
  blockId: blockId,
127
127
  libraryId: libraryId,
128
128
  presetCommonName: args.presetCommonName,
@@ -131,7 +131,8 @@ wf.body(func(args) {
131
131
  rightAlignmentMode: args.rightAlignmentMode,
132
132
  materialType: args.materialType,
133
133
  tagPattern: args.tagPattern,
134
- assembleClonesBy: args.assembleClonesBy
134
+ assembleClonesBy: args.assembleClonesBy,
135
+ exportMinQuality: args.exportMinQuality
135
136
  })
136
137
  })
137
138
 
@@ -143,14 +143,19 @@ self.body(func(inputs) {
143
143
  if !is_undefined(assembleClonesBy) {
144
144
  mixcrCmdBuilder.arg("--assemble-clonotypes-by").arg(assembleClonesBy)
145
145
  }
146
- // High diversity library tuning
147
- highDiversityLibrary := params.highDiversityLibrary
148
- if !is_undefined(highDiversityLibrary) && highDiversityLibrary {
146
+ // Clone clustering tuning
147
+ cloneClusteringMode := params.cloneClusteringMode
148
+ if is_undefined(cloneClusteringMode) {
149
+ cloneClusteringMode = "default"
150
+ }
151
+ if cloneClusteringMode == "relaxed" {
149
152
  mixcrCmdBuilder.
150
153
  arg("-Massemble.cloneAssemblerParameters.minimalQuality=20").
151
154
  arg("-Massemble.cloneAssemblerParameters.badQualityThreshold=10").
152
155
  arg("-Massemble.cloneAssemblerParameters.cloneClusteringParameters.searchParameters=oneMismatchOrIndel").
153
156
  arg("-Massemble.cloneAssemblerParameters.cloneClusteringParameters.searchDepth=1")
157
+ } else if cloneClusteringMode == "off" {
158
+ mixcrCmdBuilder.arg("-Massemble.cloneAssemblerParameters.cloneClusteringParameters=null")
154
159
  }
155
160
 
156
161
  inputMap := inputData.inputs()
@@ -203,7 +203,7 @@ self.body(func(inputs) {
203
203
  }
204
204
  } ]
205
205
 
206
- exportSpecs := calculateExportSpecs(presetSpecForBack, sampleIdAxisSpec, blockId)
206
+ exportSpecs := calculateExportSpecs(presetSpecForBack, sampleIdAxisSpec, blockId, params.exportMinQuality)
207
207
 
208
208
  columnsSpecPerSample := exportSpecs.columnsSpecPerSample
209
209
  columnsSpecPerSampleSc := exportSpecs.columnsSpecPerSampleSc
@@ -273,7 +273,7 @@ self.body(func(inputs) {
273
273
  materialType: params.materialType,
274
274
  tagPattern: params.tagPattern,
275
275
  assembleClonesBy: params.assembleClonesBy,
276
- highDiversityLibrary: params.highDiversityLibrary
276
+ cloneClusteringMode: params.cloneClusteringMode
277
277
  },
278
278
  library: library,
279
279
  presetContent: presetContent
@@ -9,7 +9,7 @@ self.defineOutputs("exportSpecs")
9
9
  self.body(func(inputs) {
10
10
  presetSpecForBack := inputs.presetSpecForBack.getDataAsJson()
11
11
 
12
- exportSpecs := calculateExportSpecs(presetSpecForBack, {}, "test")
12
+ exportSpecs := calculateExportSpecs(presetSpecForBack, {}, "test", false)
13
13
  exportSpecs = maps.deepMerge(exportSpecs, {
14
14
  axisByClonotypeKeyGen: undefined,
15
15
  axisByScClonotypeKeyGen: undefined,