@platforma-open/milaboratories.mixcr-clonotyping-2.workflow 2.15.0 → 2.16.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.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +10 -10
- package/CHANGELOG.md +12 -0
- package/dist/tengo/lib/calculate-export-specs.lib.tengo +28 -14
- 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/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 +2 -2
- package/src/calculate-export-specs.lib.tengo +28 -14
- package/src/mixcr-analyze.tpl.tengo +1 -0
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@2.
|
|
3
|
+
> @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@2.16.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/.turbo/turbo-test.log
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
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@2.
|
|
3
|
+
> @platforma-open/milaboratories.mixcr-clonotyping-2.workflow@2.16.0 test /home/runner/work/mixcr-clonotyping/mixcr-clonotyping/workflow
|
|
4
4
|
> vitest
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
[1m[7m[36m RUN [39m[27m[22m [36mv2.1.8 [39m[90m/home/runner/work/mixcr-clonotyping/mixcr-clonotyping/workflow[39m
|
|
8
8
|
|
|
9
|
-
[32m✓[39m src/test/columns.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m
|
|
10
|
-
[33m[2m✓[22m[39m checking preset for 'milab-human-dna-xcr-7genes-multiplex' [
|
|
11
|
-
[33m[2m✓[22m[39m checking preset for '10x-sc-xcr-vdj' [
|
|
12
|
-
[33m[2m✓[22m[39m checking preset for 'cellecta-human-rna-xcr-umi-drivermap-…' [
|
|
13
|
-
[33m[2m✓[22m[39m checking preset for 'takara-human-rna-bcr-umi-smartseq' [
|
|
14
|
-
[33m[2m✓[22m[39m checking preset for 'rna-seq' [
|
|
15
|
-
[33m[2m✓[22m[39m checking preset for 'generic-single-cell-gex' [
|
|
9
|
+
[32m✓[39m src/test/columns.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m 52032[2mms[22m[39m
|
|
10
|
+
[33m[2m✓[22m[39m checking preset for 'milab-human-dna-xcr-7genes-multiplex' [33m12517[2mms[22m[39m
|
|
11
|
+
[33m[2m✓[22m[39m checking preset for '10x-sc-xcr-vdj' [33m7966[2mms[22m[39m
|
|
12
|
+
[33m[2m✓[22m[39m checking preset for 'cellecta-human-rna-xcr-umi-drivermap-…' [33m7939[2mms[22m[39m
|
|
13
|
+
[33m[2m✓[22m[39m checking preset for 'takara-human-rna-bcr-umi-smartseq' [33m8375[2mms[22m[39m
|
|
14
|
+
[33m[2m✓[22m[39m checking preset for 'rna-seq' [33m7527[2mms[22m[39m
|
|
15
|
+
[33m[2m✓[22m[39m checking preset for 'generic-single-cell-gex' [33m7706[2mms[22m[39m
|
|
16
16
|
|
|
17
17
|
[2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
|
|
18
18
|
[2m Tests [22m [1m[32m6 passed[39m[22m[90m (6)[39m
|
|
19
|
-
[2m Start at [22m
|
|
20
|
-
[2m Duration [22m
|
|
19
|
+
[2m Start at [22m 20:31:27
|
|
20
|
+
[2m Duration [22m 52.90s[2m (transform 57ms, setup 0ms, collect 619ms, tests 52.03s, environment 0ms, prepare 68ms)[22m
|
|
21
21
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @platforma-open/milaboratories.mixcr-clonotyping.workflow
|
|
2
2
|
|
|
3
|
+
## 2.16.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 632c7c0: fixed bugs with assemblingFeature and updated ptransform to 1.4.0
|
|
8
|
+
|
|
9
|
+
## 2.15.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 1c2dc52: Add --force-overwrite option to avoid rare bug
|
|
14
|
+
|
|
3
15
|
## 2.15.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -36,24 +36,30 @@ assemblingFeatureInfo := func(assemblingFeature) {
|
|
|
36
36
|
productiveFeature := undefined
|
|
37
37
|
coreVFeature := undefined
|
|
38
38
|
coreJFeature := undefined
|
|
39
|
-
if assemblingFeature
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
if assemblingFeature {
|
|
40
|
+
splittedFeature1 := text.split(assemblingFeature, "_TO_")
|
|
41
|
+
splittedFeature2 := text.split(assemblingFeature, ":")
|
|
42
|
+
if assemblingFeature == "CDR3" {
|
|
43
|
+
productiveFeature = "CDR3"
|
|
44
|
+
} else if assemblingFeature == "VDJRegion" {
|
|
45
|
+
productiveFeature = "VDJRegion(0,-1)"
|
|
46
|
+
coreVFeature = "{FR1Begin:FR3End}"
|
|
47
|
+
coreJFeature = "FR4"
|
|
48
|
+
} else if len(splittedFeature1) == 2 {
|
|
49
|
+
if splittedFeature1[1] == "FR4" {
|
|
50
|
+
productiveFeature = splittedFeature1[0] + "_TO_FR4(0,-1)"
|
|
51
|
+
coreVFeature = "{"+splittedFeature1[0]+"Begin:FR3End}"
|
|
51
52
|
coreJFeature = "FR4"
|
|
52
53
|
} else {
|
|
53
54
|
productiveFeature = assemblingFeature
|
|
54
|
-
coreVFeature = "{"+
|
|
55
|
+
coreVFeature = "{"+splittedFeature1[0]+"Begin:FR3End}"
|
|
55
56
|
}
|
|
57
|
+
} else if len(splittedFeature2) == 2 {
|
|
58
|
+
productiveFeature = assemblingFeature
|
|
59
|
+
coreVFeature = splittedFeature2[0]+":FR3End}"
|
|
56
60
|
}
|
|
61
|
+
} else {
|
|
62
|
+
productiveFeature = "CDR3"
|
|
57
63
|
}
|
|
58
64
|
return {
|
|
59
65
|
productiveFeature: productiveFeature,
|
|
@@ -64,6 +70,14 @@ assemblingFeatureInfo := func(assemblingFeature) {
|
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
|
|
73
|
+
|
|
74
|
+
formatId := func(input) {
|
|
75
|
+
noNums := text.re_replace(`\(\s*-?\d+(\s*,\s*-?\d+)*\s*\)`, input, "")
|
|
76
|
+
noBraces := text.re_replace(`[{}\(\)]`, noNums, "")
|
|
77
|
+
result := text.re_replace(`:`, noBraces, "-")
|
|
78
|
+
return result
|
|
79
|
+
}
|
|
80
|
+
|
|
67
81
|
exportSpecOpsFromPreset := func(presetSpecForBack) {
|
|
68
82
|
assemblingFeature := undefined
|
|
69
83
|
if !is_undefined(presetSpecForBack.assemblingFeature) {
|
|
@@ -302,7 +316,7 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
|
|
|
302
316
|
imputedU := isImputed ? "Imputed" : ""
|
|
303
317
|
imputedL := text.to_lower(imputedU)
|
|
304
318
|
for featureU in features {
|
|
305
|
-
featureL := text.to_lower(featureU)
|
|
319
|
+
featureL := text.to_lower(formatId(featureU))
|
|
306
320
|
for isAminoAcid in [true, false] {
|
|
307
321
|
alphabet := isAminoAcid ? "aminoacid" : "nucleotide"
|
|
308
322
|
alphabetShort := isAminoAcid ? "aa" : "nt"
|
|
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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-open/milaboratories.mixcr-clonotyping-2.workflow",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"description": "Tengo-based template",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@platforma-sdk/workflow-tengo": "^4.1.2",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"@platforma-sdk/tengo-builder": "^2.1.0",
|
|
12
12
|
"@platforma-open/milaboratories.software-mixcr": "4.7.0-165-develop",
|
|
13
|
-
"@platforma-open/milaboratories.software-ptransform": "^1.
|
|
13
|
+
"@platforma-open/milaboratories.software-ptransform": "^1.4.0",
|
|
14
14
|
"@platforma-sdk/test": "^1.29.17",
|
|
15
15
|
"vitest": "~2.1.8",
|
|
16
16
|
"typescript": "~5.5.4"
|
|
@@ -36,24 +36,30 @@ assemblingFeatureInfo := func(assemblingFeature) {
|
|
|
36
36
|
productiveFeature := undefined
|
|
37
37
|
coreVFeature := undefined
|
|
38
38
|
coreJFeature := undefined
|
|
39
|
-
if assemblingFeature
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
if assemblingFeature {
|
|
40
|
+
splittedFeature1 := text.split(assemblingFeature, "_TO_")
|
|
41
|
+
splittedFeature2 := text.split(assemblingFeature, ":")
|
|
42
|
+
if assemblingFeature == "CDR3" {
|
|
43
|
+
productiveFeature = "CDR3"
|
|
44
|
+
} else if assemblingFeature == "VDJRegion" {
|
|
45
|
+
productiveFeature = "VDJRegion(0,-1)"
|
|
46
|
+
coreVFeature = "{FR1Begin:FR3End}"
|
|
47
|
+
coreJFeature = "FR4"
|
|
48
|
+
} else if len(splittedFeature1) == 2 {
|
|
49
|
+
if splittedFeature1[1] == "FR4" {
|
|
50
|
+
productiveFeature = splittedFeature1[0] + "_TO_FR4(0,-1)"
|
|
51
|
+
coreVFeature = "{"+splittedFeature1[0]+"Begin:FR3End}"
|
|
51
52
|
coreJFeature = "FR4"
|
|
52
53
|
} else {
|
|
53
54
|
productiveFeature = assemblingFeature
|
|
54
|
-
coreVFeature = "{"+
|
|
55
|
+
coreVFeature = "{"+splittedFeature1[0]+"Begin:FR3End}"
|
|
55
56
|
}
|
|
57
|
+
} else if len(splittedFeature2) == 2 {
|
|
58
|
+
productiveFeature = assemblingFeature
|
|
59
|
+
coreVFeature = splittedFeature2[0]+":FR3End}"
|
|
56
60
|
}
|
|
61
|
+
} else {
|
|
62
|
+
productiveFeature = "CDR3"
|
|
57
63
|
}
|
|
58
64
|
return {
|
|
59
65
|
productiveFeature: productiveFeature,
|
|
@@ -64,6 +70,14 @@ assemblingFeatureInfo := func(assemblingFeature) {
|
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
|
|
73
|
+
// sometimes we need to format assembling feature to be used in column ids
|
|
74
|
+
formatId := func(input) {
|
|
75
|
+
noNums := text.re_replace(`\(\s*-?\d+(\s*,\s*-?\d+)*\s*\)`, input, "")
|
|
76
|
+
noBraces := text.re_replace(`[{}\(\)]`, noNums, "")
|
|
77
|
+
result := text.re_replace(`:`, noBraces, "-")
|
|
78
|
+
return result
|
|
79
|
+
}
|
|
80
|
+
|
|
67
81
|
exportSpecOpsFromPreset := func(presetSpecForBack) {
|
|
68
82
|
assemblingFeature := undefined
|
|
69
83
|
if !is_undefined(presetSpecForBack.assemblingFeature) {
|
|
@@ -302,7 +316,7 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
|
|
|
302
316
|
imputedU := isImputed ? "Imputed" : ""
|
|
303
317
|
imputedL := text.to_lower(imputedU)
|
|
304
318
|
for featureU in features {
|
|
305
|
-
featureL := text.to_lower(featureU)
|
|
319
|
+
featureL := text.to_lower(formatId(featureU))
|
|
306
320
|
for isAminoAcid in [true, false] {
|
|
307
321
|
alphabet := isAminoAcid ? "aminoacid" : "nucleotide"
|
|
308
322
|
alphabetShort := isAminoAcid ? "aa" : "nt"
|