@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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/tengo/lib/calculate-export-specs.lib.tengo +4 -2
- package/dist/tengo/tpl/aggregate-by-clonotype-key.plj.gz +0 -0
- package/dist/tengo/tpl/calculate-preset-info.plj.gz +0 -0
- package/dist/tengo/tpl/export-report.plj.gz +0 -0
- package/dist/tengo/tpl/list-presets.plj.gz +0 -0
- package/dist/tengo/tpl/main.plj.gz +0 -0
- package/dist/tengo/tpl/mixcr-analyze.plj.gz +0 -0
- package/dist/tengo/tpl/mixcr-export.plj.gz +0 -0
- package/dist/tengo/tpl/prerun.plj.gz +0 -0
- package/dist/tengo/tpl/process-single-cell.plj.gz +0 -0
- package/dist/tengo/tpl/process.plj.gz +0 -0
- package/dist/tengo/tpl/test.columns-calculate.plj.gz +0 -0
- package/dist/tengo/tpl/test.columns.test.plj.gz +0 -0
- package/package.json +5 -5
- package/src/calculate-export-specs.lib.tengo +4 -2
- package/src/process.tpl.tengo +51 -3
package/.turbo/turbo-build.log
CHANGED
|
@@ -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.
|
|
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
|
@@ -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,
|
|
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,
|
|
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
|
|
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.
|
|
3
|
+
"version": "3.17.1",
|
|
4
4
|
"description": "Tengo-based template",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@platforma-sdk/workflow-tengo": "^5.6.
|
|
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
|
|
11
|
-
"@platforma-sdk/tengo-builder": "^2.
|
|
12
|
-
"@platforma-sdk/test": "^1.
|
|
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,
|
|
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,
|
|
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
|
}
|
package/src/process.tpl.tengo
CHANGED
|
@@ -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:
|
|
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
|
-
|
|
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 ?
|
|
681
|
+
columns: transformSpecs(isPrimary ? columnsForSingleCell : columnsSpecPerClonotypeSecondary, {
|
|
634
682
|
spec: {
|
|
635
683
|
domain: {
|
|
636
684
|
"pl7.app/vdj/scClonotypeChain": chainLetterU,
|