@platforma-open/milaboratories.mixcr-clonotyping-2.workflow 3.17.0 → 3.17.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,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.0 build /home/runner/work/mixcr-clonotyping/mixcr-clonotyping/workflow
3
+ > @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@3.17.1 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.17.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 5d90233: Hide non-relevant columns
8
+
3
9
  ## 3.17.0
4
10
 
5
11
  ### Minor Changes
@@ -260,13 +260,14 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
260
260
  spec: {
261
261
  name: "pl7.app/vdj/readFractionMean",
262
262
  valueType: "Double",
263
- annotations: a(87130, true, {
263
+ annotations: a(87130, false, {
264
264
  "pl7.app/min": "0",
265
265
  "pl7.app/max": "1",
266
266
  "pl7.app/isAbundance": "true",
267
267
  "pl7.app/abundance/unit": "reads",
268
268
  "pl7.app/abundance/normalized": "true",
269
269
  "pl7.app/label": "Mean Fraction of Reads",
270
+ "pl7.app/description": "The average read fraction of a clonotype across all samples where it is present.",
270
271
  "pl7.app/format": ".2p"
271
272
  })
272
273
  }
@@ -341,13 +342,14 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
341
342
  spec: {
342
343
  name: "pl7.app/vdj/uniqueMoleculeFractionMean",
343
344
  valueType: "Double",
344
- annotations: a(87130, true, {
345
+ annotations: a(87130, false, {
345
346
  "pl7.app/min": "0",
346
347
  "pl7.app/max": "1",
347
348
  "pl7.app/isAbundance": "true",
348
349
  "pl7.app/abundance/unit": "molecules",
349
350
  "pl7.app/abundance/normalized": "true",
350
351
  "pl7.app/label": "Mean Fraction of UMIs",
352
+ "pl7.app/description": "The average UMI fraction of a clonotype across all samples where it is present.",
351
353
  "pl7.app/format": ".2p"
352
354
  })
353
355
  }
Binary file
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-clonotyping-2.workflow",
3
- "version": "3.17.0",
3
+ "version": "3.17.1",
4
4
  "description": "Tengo-based template",
5
5
  "dependencies": {
6
- "@platforma-sdk/workflow-tengo": "^5.6.5",
6
+ "@platforma-sdk/workflow-tengo": "^5.6.6",
7
7
  "@platforma-open/milaboratories.software-mixcr": "4.7.0-254-develop"
8
8
  },
9
9
  "devDependencies": {
10
- "@milaboratories/ts-configs": "^1.0.6",
11
- "@platforma-sdk/tengo-builder": "^2.3.14",
12
- "@platforma-sdk/test": "^1.46.5",
10
+ "@milaboratories/ts-configs": "^1.1.0",
11
+ "@platforma-sdk/tengo-builder": "^2.4.1",
12
+ "@platforma-sdk/test": "^1.47.6",
13
13
  "vitest": "~4.0.15",
14
14
  "typescript": "~5.6.3"
15
15
  },
@@ -260,13 +260,14 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
260
260
  spec: {
261
261
  name: "pl7.app/vdj/readFractionMean",
262
262
  valueType: "Double",
263
- annotations: a(87130, true, {
263
+ annotations: a(87130, false, {
264
264
  "pl7.app/min": "0",
265
265
  "pl7.app/max": "1",
266
266
  "pl7.app/isAbundance": "true",
267
267
  "pl7.app/abundance/unit": "reads",
268
268
  "pl7.app/abundance/normalized": "true",
269
269
  "pl7.app/label": "Mean Fraction of Reads",
270
+ "pl7.app/description": "The average read fraction of a clonotype across all samples where it is present.",
270
271
  "pl7.app/format": ".2p"
271
272
  })
272
273
  }
@@ -341,13 +342,14 @@ calculateExportSpecs := func(presetSpecForBack, sampleIdAxisSpec, blockId) {
341
342
  spec: {
342
343
  name: "pl7.app/vdj/uniqueMoleculeFractionMean",
343
344
  valueType: "Double",
344
- annotations: a(87130, true, {
345
+ annotations: a(87130, false, {
345
346
  "pl7.app/min": "0",
346
347
  "pl7.app/max": "1",
347
348
  "pl7.app/isAbundance": "true",
348
349
  "pl7.app/abundance/unit": "molecules",
349
350
  "pl7.app/abundance/normalized": "true",
350
351
  "pl7.app/label": "Mean Fraction of UMIs",
352
+ "pl7.app/description": "The average UMI fraction of a clonotype across all samples where it is present.",
351
353
  "pl7.app/format": ".2p"
352
354
  })
353
355
  }
@@ -457,12 +457,35 @@ self.body(func(inputs) {
457
457
  } ]
458
458
 
459
459
  if !isSingleCell {
460
+ // Modify column visibility for TCR chains
461
+ isTCRChain := text.has_prefix(chain, "TCR")
462
+ columnsForAggregation := columnsSpecPerClonotypeNoAggregates + columnsSpecPerClonotypeAggregates
463
+ if isTCRChain {
464
+ visibilitySettings := {
465
+ "bestCGene": "optional",
466
+ "bestCHit": "optional",
467
+ "isotypePrimary": "hidden"
468
+ }
469
+ columnsForAggregation = slices.map(columnsForAggregation, func(col) {
470
+ visibility := visibilitySettings[col.column]
471
+ if !is_undefined(visibility) {
472
+ return maps.deepMerge(col, {
473
+ spec: {
474
+ annotations: maps.merge(col.spec.annotations, {
475
+ "pl7.app/table/visibility": visibility
476
+ })
477
+ }
478
+ })
479
+ }
480
+ return col
481
+ })
482
+ }
460
483
  aggregationOutputs += [ {
461
484
  type: "Xsv",
462
485
  xsvType: "tsv",
463
486
  settings: {
464
487
  axes: [ axisByClonotypeKeyGen(chain) ],
465
- columns: columnsSpecPerClonotypeNoAggregates + columnsSpecPerClonotypeAggregates,
488
+ columns: columnsForAggregation,
466
489
  storageFormat: "Parquet",
467
490
  partitionKeyLength: 0
468
491
  },
@@ -588,9 +611,34 @@ self.body(func(inputs) {
588
611
  for chainIdx in [0, 1] {
589
612
  // "A" chain is always the one that is more diverse
590
613
  chainLetterU := ["A", "B"][chainIdx]
591
- chainNameU := chainInfos[receptorInfo.chains[chainIdx]].shortName
614
+ chain := receptorInfo.chains[chainIdx]
615
+ chainNameU := chainInfos[chain].shortName
592
616
  chainNameL := text.to_lower(chainNameU)
593
617
 
618
+ // Modify column visibility for TCR chains
619
+ isTCRChain := text.has_prefix(chain, "TCR")
620
+ columnsForSingleCell := columnsSpecPerClonotypeNoAggregates
621
+ if isTCRChain {
622
+ visibilitySettings := {
623
+ "bestCGene": "optional",
624
+ "bestCHit": "optional",
625
+ "isotypePrimary": "hidden"
626
+ }
627
+ columnsForSingleCell = slices.map(columnsForSingleCell, func(col) {
628
+ visibility := visibilitySettings[col.column]
629
+ if !is_undefined(visibility) {
630
+ return maps.deepMerge(col, {
631
+ spec: {
632
+ annotations: maps.merge(col.spec.annotations, {
633
+ "pl7.app/table/visibility": visibility
634
+ })
635
+ }
636
+ })
637
+ }
638
+ return col
639
+ })
640
+ }
641
+
594
642
  for isPrimary in [true, false] {
595
643
  pPrefixU := isPrimary ? "Primary" : "Secondary"
596
644
  pPrefixL := text.to_lower(pPrefixU)
@@ -630,7 +678,7 @@ self.body(func(inputs) {
630
678
  xsvType: "tsv",
631
679
  settings: {
632
680
  axes: [ axisByScClonotypeKeyGen(receptor) ],
633
- columns: transformSpecs(isPrimary ? columnsSpecPerClonotypeNoAggregates : columnsSpecPerClonotypeSecondary, {
681
+ columns: transformSpecs(isPrimary ? columnsForSingleCell : columnsSpecPerClonotypeSecondary, {
634
682
  spec: {
635
683
  domain: {
636
684
  "pl7.app/vdj/scClonotypeChain": chainLetterU,