@platforma-open/milaboratories.mixcr-amplicon-alignment.workflow 1.9.0 → 1.10.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 -3
- package/CHANGELOG.md +12 -0
- package/dist/tengo/lib/calculate-export-specs.lib.tengo +4 -13
- package/dist/tengo/tpl/aggregate-by-clonotype-key.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/process.plj.gz +0 -0
- package/dist/tengo/tpl/repseqio-library.plj.gz +0 -0
- package/package.json +1 -1
- package/src/calculate-export-specs.lib.tengo +4 -13
- package/src/main.tpl.tengo +2 -7
- package/src/mixcr-analyze.tpl.tengo +3 -7
- package/src/process.tpl.tengo +5 -10
- package/src/wf.test.ts +0 -16
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
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.
|
|
3
|
+
> @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow@1.10.1 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
|
-
info: Skipping unknown file type: wf.test.ts
|
|
7
6
|
Processing "src/aggregate-by-clonotype-key.tpl.tengo"...
|
|
8
7
|
Processing "src/calculate-export-specs.lib.tengo"...
|
|
9
8
|
Processing "src/clonotype-label.lib.tengo"...
|
|
@@ -13,7 +12,6 @@ Processing "src/mixcr-export.tpl.tengo"...
|
|
|
13
12
|
Processing "src/process.tpl.tengo"...
|
|
14
13
|
Processing "src/repseqio-library.tpl.tengo"...
|
|
15
14
|
No syntax errors found.
|
|
16
|
-
info: Skipping unknown file type: wf.test.ts
|
|
17
15
|
info: Compiling 'dist'...
|
|
18
16
|
info: - writing /home/runner/work/mixcr-amplicon-alignment/mixcr-amplicon-alignment/workflow/dist/tengo/lib/calculate-export-specs.lib.tengo
|
|
19
17
|
info: - writing /home/runner/work/mixcr-amplicon-alignment/mixcr-amplicon-alignment/workflow/dist/tengo/lib/clonotype-label.lib.tengo
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @platforma-open/milaboratories.mixcr-amplicon-alignment.workflow
|
|
2
2
|
|
|
3
|
+
## 1.10.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 2209c82: [sdk/ui] Broken error propagation: block errors are not showing anymore
|
|
8
|
+
|
|
9
|
+
## 1.10.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 07e7fc7: Update frame shift behaviour, general refactoring
|
|
14
|
+
|
|
3
15
|
## 1.9.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -11,15 +11,6 @@ a := func(order, defaultVisibility, spec) {
|
|
|
11
11
|
})
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
inFrameFeatures := {
|
|
19
|
-
"FR4": "FR4InFrame",
|
|
20
|
-
"VDJRegion": "VDJRegionInFrame"
|
|
21
|
-
}
|
|
22
|
-
|
|
23
14
|
annotationMappings := {
|
|
24
15
|
"CDRs": "{\"1\":\"CDR1\",\"2\":\"CDR2\",\"3\":\"CDR3\"}",
|
|
25
16
|
"Segments": "{\"1\":\"V\",\"2\":\"D\",\"3\":\"J\",\"4\":\"C\"}"
|
|
@@ -47,7 +38,7 @@ toCombinedDomainValue := func(spec) {
|
|
|
47
38
|
|
|
48
39
|
|
|
49
40
|
assemblingFeature := "VDJRegion"
|
|
50
|
-
productiveFeature := "
|
|
41
|
+
productiveFeature := "VDJRegion"
|
|
51
42
|
coreVFeature := "{FR1Begin:FR3End}"
|
|
52
43
|
coreJFeature := "FR4"
|
|
53
44
|
splitByC := false
|
|
@@ -71,7 +62,7 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
|
|
|
71
62
|
assemblingFeature := "VDJRegion" // Hardcoded to VDJRegion
|
|
72
63
|
splitByC := false
|
|
73
64
|
|
|
74
|
-
productiveFeature := "
|
|
65
|
+
productiveFeature := "VDJRegion"
|
|
75
66
|
coreGeneFeatures := {
|
|
76
67
|
V: "{FR1Begin:FR3End}",
|
|
77
68
|
J: "FR4"
|
|
@@ -306,8 +297,8 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
|
|
|
306
297
|
annotationTypes := ["CDRs", "Segments"]
|
|
307
298
|
|
|
308
299
|
inFrameFeatures := {
|
|
309
|
-
"FR4": "
|
|
310
|
-
"VDJRegion": "
|
|
300
|
+
"FR4": "FR4",
|
|
301
|
+
"VDJRegion": "VDJRegion"
|
|
311
302
|
}
|
|
312
303
|
|
|
313
304
|
for featureU in features {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -11,15 +11,6 @@ a := func(order, defaultVisibility, spec) {
|
|
|
11
11
|
})
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
/**
|
|
15
|
-
* Mapping from original featuers to their in-frame variants when available.
|
|
16
|
-
* This is used to avoid showing non-informative features in the clonotype browser.
|
|
17
|
-
*/
|
|
18
|
-
inFrameFeatures := {
|
|
19
|
-
"FR4": "FR4InFrame",
|
|
20
|
-
"VDJRegion": "VDJRegionInFrame"
|
|
21
|
-
}
|
|
22
|
-
|
|
23
14
|
annotationMappings := {
|
|
24
15
|
"CDRs": "{\"1\":\"CDR1\",\"2\":\"CDR2\",\"3\":\"CDR3\"}",
|
|
25
16
|
"Segments": "{\"1\":\"V\",\"2\":\"D\",\"3\":\"J\",\"4\":\"C\"}"
|
|
@@ -47,7 +38,7 @@ toCombinedDomainValue := func(spec) {
|
|
|
47
38
|
* - J: formatted identifier for the J gene core feature (if applicable)
|
|
48
39
|
*/
|
|
49
40
|
assemblingFeature := "VDJRegion"
|
|
50
|
-
productiveFeature := "
|
|
41
|
+
productiveFeature := "VDJRegion"
|
|
51
42
|
coreVFeature := "{FR1Begin:FR3End}"
|
|
52
43
|
coreJFeature := "FR4"
|
|
53
44
|
splitByC := false
|
|
@@ -71,7 +62,7 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
|
|
|
71
62
|
assemblingFeature := "VDJRegion" // Hardcoded to VDJRegion
|
|
72
63
|
splitByC := false
|
|
73
64
|
|
|
74
|
-
productiveFeature := "
|
|
65
|
+
productiveFeature := "VDJRegion"
|
|
75
66
|
coreGeneFeatures := {
|
|
76
67
|
V: "{FR1Begin:FR3End}",
|
|
77
68
|
J: "FR4"
|
|
@@ -306,8 +297,8 @@ calculateExportSpecs := func(presetSpecForBack, blockId) {
|
|
|
306
297
|
annotationTypes := ["CDRs", "Segments"]
|
|
307
298
|
|
|
308
299
|
inFrameFeatures := {
|
|
309
|
-
"FR4": "
|
|
310
|
-
"VDJRegion": "
|
|
300
|
+
"FR4": "FR4",
|
|
301
|
+
"VDJRegion": "VDJRegion"
|
|
311
302
|
}
|
|
312
303
|
|
|
313
304
|
for featureU in features {
|
package/src/main.tpl.tengo
CHANGED
|
@@ -22,12 +22,10 @@ wf.prepare(func(args){
|
|
|
22
22
|
wf.body(func(args) {
|
|
23
23
|
blockId := wf.blockId().getDataAsJson()
|
|
24
24
|
|
|
25
|
-
inputRef := args.
|
|
25
|
+
inputRef := args.datasetRef
|
|
26
26
|
|
|
27
27
|
input := wf.resolve(inputRef)
|
|
28
28
|
|
|
29
|
-
threePrimePrimer := args.threePrimePrimer
|
|
30
|
-
fivePrimePrimer := args.fivePrimePrimer
|
|
31
29
|
chains := args.chains
|
|
32
30
|
limitInput := args.limitInput
|
|
33
31
|
perProcessMemGB := args.perProcessMemGB
|
|
@@ -86,13 +84,10 @@ wf.body(func(args) {
|
|
|
86
84
|
blockId: blockId,
|
|
87
85
|
perProcessMemGB: perProcessMemGB,
|
|
88
86
|
perProcessCPUs: perProcessCPUs,
|
|
89
|
-
threePrimePrimer: threePrimePrimer,
|
|
90
|
-
fivePrimePrimer: fivePrimePrimer,
|
|
91
87
|
chains: chains,
|
|
92
88
|
mixcrChains: chainInfos[chains].mixcrFilter,
|
|
93
89
|
cloneClusteringMode: cloneClusteringMode,
|
|
94
|
-
|
|
95
|
-
fullPattern: args.fullPattern
|
|
90
|
+
tagPattern: args.tagPattern
|
|
96
91
|
})
|
|
97
92
|
})
|
|
98
93
|
|
|
@@ -78,16 +78,12 @@ self.body(func(inputs) {
|
|
|
78
78
|
arg("--rigid-right-alignment-boundary").arg("J")
|
|
79
79
|
|
|
80
80
|
// Pass pattern if provided
|
|
81
|
-
if !is_undefined(params.
|
|
82
|
-
|
|
83
|
-
mixcrCmdBuilder.arg("--tag-pattern").arg(params.fullPattern)
|
|
84
|
-
} else {
|
|
85
|
-
mixcrCmdBuilder.arg("--tag-pattern").arg(params.fullPattern)
|
|
86
|
-
}
|
|
81
|
+
if !is_undefined(params.tagPattern) && params.tagPattern != "" {
|
|
82
|
+
mixcrCmdBuilder.arg("--tag-pattern").arg(params.tagPattern)
|
|
87
83
|
}
|
|
88
84
|
|
|
89
85
|
// Clone clustering tuning
|
|
90
|
-
if cloneClusteringMode == "
|
|
86
|
+
if cloneClusteringMode == "relaxed" {
|
|
91
87
|
mixcrCmdBuilder.arg("-Massemble.cloneAssemblerParameters.cloneClusteringParameters.searchParameters=oneMismatchOrIndel")
|
|
92
88
|
} else if cloneClusteringMode == "off" {
|
|
93
89
|
mixcrCmdBuilder.arg("-Massemble.cloneAssemblerParameters.cloneClusteringParameters=null")
|
package/src/process.tpl.tengo
CHANGED
|
@@ -27,17 +27,12 @@ self.body(func(inputs) {
|
|
|
27
27
|
params := inputs.params
|
|
28
28
|
blockId := params.blockId
|
|
29
29
|
referenceLibrary := inputs.referenceLibrary
|
|
30
|
-
threePrimePrimer := params.threePrimePrimer
|
|
31
|
-
fivePrimePrimer := params.fivePrimePrimer
|
|
32
30
|
chains := params.chains
|
|
33
31
|
mixcrChains := params.mixcrChains
|
|
34
32
|
cloneClusteringMode := params.cloneClusteringMode
|
|
35
|
-
|
|
36
|
-
fullPattern := params.fullPattern
|
|
33
|
+
tagPattern := params.tagPattern
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
hasUmiBool := !is_undefined(hasUMI) && hasUMI
|
|
40
|
-
fullPatternStr := is_undefined(fullPattern) ? "" : fullPattern
|
|
35
|
+
hasUMI := text.contains(tagPattern, "UMI") || text.contains(tagPattern, "Umi") || text.contains(tagPattern, "umi")
|
|
41
36
|
limitInput := inputs.limitInput
|
|
42
37
|
perProcessMemGB := params.perProcessMemGB
|
|
43
38
|
perProcessCPUs := params.perProcessCPUs
|
|
@@ -47,7 +42,7 @@ self.body(func(inputs) {
|
|
|
47
42
|
presetSpecForBack := {
|
|
48
43
|
assemblingFeature: ["VDJRegion"],
|
|
49
44
|
splitByC: true,
|
|
50
|
-
umiTags:
|
|
45
|
+
umiTags: hasUMI ? ["Molecule"] : undefined,
|
|
51
46
|
cellTags: undefined
|
|
52
47
|
}
|
|
53
48
|
|
|
@@ -169,8 +164,8 @@ self.body(func(inputs) {
|
|
|
169
164
|
fileExtension: fileExtension,
|
|
170
165
|
referenceLibrary: referenceLibrary,
|
|
171
166
|
cloneClusteringMode: cloneClusteringMode,
|
|
172
|
-
hasUMI:
|
|
173
|
-
|
|
167
|
+
hasUMI: hasUMI,
|
|
168
|
+
tagPattern: tagPattern
|
|
174
169
|
},
|
|
175
170
|
limitInput: limitInput
|
|
176
171
|
},
|
package/src/wf.test.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { tplTest } from "@platforma-sdk/test";
|
|
2
|
-
|
|
3
|
-
tplTest(
|
|
4
|
-
'should return a concatenated string',
|
|
5
|
-
async ({ helper, expect }) => {
|
|
6
|
-
const results = await helper.renderWorkflow("main", false, {
|
|
7
|
-
name: 'World'
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
const pythonMessage = results.output("pythonMessage", (a) => a?.getDataAsString());
|
|
11
|
-
expect(await pythonMessage.awaitStableValue()).eq('Hello from Python, World!\n');
|
|
12
|
-
|
|
13
|
-
const tengoMessage = results.output("tengoMessage", (a) => a?.getDataAsJson<string>());
|
|
14
|
-
expect(await tengoMessage.awaitStableValue()).eq('Hello from Tengo, World!');
|
|
15
|
-
}
|
|
16
|
-
);
|