@platforma-open/milaboratories.mixcr-amplicon-alignment.workflow 1.21.10 → 1.21.12

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.10 build /home/runner/work/mixcr-amplicon-alignment/mixcr-amplicon-alignment/workflow
3
+ > @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow@1.21.12 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.12
4
+
5
+ ### Patch Changes
6
+
7
+ - 2bd5020: Fixed bug in QC table when using FR1:FR4 assembling feature. SDK Update
8
+
9
+ ## 1.21.11
10
+
11
+ ### Patch Changes
12
+
13
+ - a44cc33: Add an option to disable low-quality read mapping
14
+
3
15
  ## 1.21.10
4
16
 
5
17
  ### Patch Changes
@@ -169,13 +169,27 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
169
169
 
170
170
 
171
171
 
172
+ if assemblingFeature == "FR1:FR4" {
173
+ productiveFeature = "VDJRegion"
174
+ }
175
+
176
+
177
+
178
+
179
+
180
+
172
181
 
173
182
  outputProductiveFeature := productiveFeature
174
183
  if assemblingFeature != "VDJRegion" && assemblingFeature != "CDR3" {
175
184
  parts := text.split(assemblingFeature, ":")
176
185
  if len(parts) == 2 && parts[1] == "FR4" {
186
+ if parts[0] == "FR1" {
177
187
 
178
- outputProductiveFeature = parts[0] + "_TO_FR4"
188
+ outputProductiveFeature = "VDJRegion"
189
+ } else {
190
+
191
+ outputProductiveFeature = parts[0] + "_TO_FR4"
192
+ }
179
193
  }
180
194
  }
181
195
 
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.mixcr-amplicon-alignment.workflow",
3
- "version": "1.21.10",
3
+ "version": "1.21.12",
4
4
  "description": "MiXCR Amplicon Alignment Workflow",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@platforma-sdk/workflow-tengo": "5.11.0",
7
+ "@platforma-sdk/workflow-tengo": "6.3.0",
8
8
  "@platforma-open/milaboratories.software-mixcr": "4.7.0-347-develop",
9
9
  "@platforma-open/milaboratories.software-repseqio": "^2.5.0-13-master"
10
10
  },
11
11
  "devDependencies": {
12
- "@platforma-sdk/tengo-builder": "2.5.1"
12
+ "@platforma-sdk/tengo-builder": "4.0.5"
13
13
  },
14
14
  "scripts": {
15
15
  "build": "rm -rf dist && pl-tengo check && pl-tengo build",
@@ -165,17 +165,31 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
165
165
 
166
166
  productiveFeature := formatAssemblingFeature(assemblingFeature)
167
167
 
168
+ // FR1:FR4 spans the entire VDJRegion; MiXCR canonicalizes {FR1Begin:FR4End} to the
169
+ // "VDJRegion" name in every exported column (isProductiveVDJRegion, isOOFVDJRegion,
170
+ // nSeqVDJRegion, ...). Normalize here so the export args we pass and the column names
171
+ // we (and export-report.tpl) expect both agree with MiXCR's output.
172
+ if assemblingFeature == "FR1:FR4" {
173
+ productiveFeature = "VDJRegion"
174
+ }
175
+
168
176
  // MiXCR column naming for range features:
169
- // - Ranges ending at FR4 have named aliases: CDR1_TO_FR4, FR2_TO_FR4, CDR2_TO_FR4, FR3_TO_FR4
170
- // (defined in repseqio GeneFeature.java)
177
+ // - FR1:FR4 is the full VDJRegion; MiXCR names it "VDJRegion", NOT "FR1_TO_FR4"
178
+ // (FR1Begin:FR4End is the canonical VDJRegion in repseqio GeneFeature.java)
179
+ // - Other ranges ending at FR4 have named aliases: CDR1_TO_FR4, FR2_TO_FR4, CDR2_TO_FR4, FR3_TO_FR4
171
180
  // - All other ranges use {XBegin:YEnd} format (e.g. {CDR1Begin:CDR3End})
172
181
  // - Simple features (CDR3, VDJRegion) use their name directly
173
182
  outputProductiveFeature := productiveFeature
174
183
  if assemblingFeature != "VDJRegion" && assemblingFeature != "CDR3" {
175
184
  parts := text.split(assemblingFeature, ":")
176
185
  if len(parts) == 2 && parts[1] == "FR4" {
177
- // MiXCR has a named alias for this range
178
- outputProductiveFeature = parts[0] + "_TO_FR4"
186
+ if parts[0] == "FR1" {
187
+ // Full range: MiXCR uses the canonical "VDJRegion" name, not "FR1_TO_FR4"
188
+ outputProductiveFeature = "VDJRegion"
189
+ } else {
190
+ // MiXCR has a named alias for this range
191
+ outputProductiveFeature = parts[0] + "_TO_FR4"
192
+ }
179
193
  }
180
194
  }
181
195
 
@@ -144,6 +144,7 @@ wf.body(func(args) {
144
144
  assemblingFeature: args.assemblingFeature,
145
145
  imputeGermline: args.imputeGermline,
146
146
  badQualityThreshold: args.badQualityThreshold,
147
+ disableLowQualityMapping: args.disableLowQualityMapping,
147
148
  isLibraryFileGzipped: isLibraryFileGzipped,
148
149
  stopCodonTypes: args.stopCodonTypes,
149
150
  stopCodonReplacements: args.stopCodonReplacements
@@ -122,6 +122,12 @@ self.body(func(inputs) {
122
122
  mixcrCmdBuilder.arg("-Massemble.cloneAssemblerParameters.minimalQuality=" + string(int(badQualityThreshold)))
123
123
  }
124
124
 
125
+ // Disable the deferred-reads mapping phase
126
+ disableLowQualityMapping := params.disableLowQualityMapping
127
+ if !is_undefined(disableLowQualityMapping) && disableLowQualityMapping {
128
+ mixcrCmdBuilder.arg("-Massemble.cloneAssemblerParameters.maxBadPointsPercent=0")
129
+ }
130
+
125
131
  // if (!is_undefined(threePrimePrimer)) {
126
132
  // mixcrCmdBuilder.arg("--floating-left-alignment-boundary")
127
133
  // } else {
@@ -221,6 +221,7 @@ self.body(func(inputs) {
221
221
  assemblingFeature: params.assemblingFeature,
222
222
  imputeGermline: params.imputeGermline,
223
223
  badQualityThreshold: params.badQualityThreshold,
224
+ disableLowQualityMapping: params.disableLowQualityMapping,
224
225
  isLibraryFileGzipped: params.isLibraryFileGzipped
225
226
  }, { removeUndefs: true }),
226
227
  limitInput: limitInput