@platforma-open/milaboratories.top-antibodies.workflow 1.9.0 → 1.10.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/CHANGELOG.md +11 -0
- package/dist/tengo/tpl/filter-and-sample.plj.gz +0 -0
- package/dist/tengo/tpl/main.plj.gz +0 -0
- package/dist/tengo/tpl/prerun.plj.gz +0 -0
- package/package.json +4 -4
- package/src/filter-and-sample.tpl.tengo +2 -0
- package/src/main.tpl.tengo +26 -0
- package/src/prerun.tpl.tengo +26 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-open/milaboratories.top-antibodies.workflow@1.
|
|
3
|
+
> @platforma-open/milaboratories.top-antibodies.workflow@1.10.0 build /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow
|
|
4
4
|
> rm -rf dist && pl-tengo check && pl-tengo build
|
|
5
5
|
|
|
6
6
|
Processing "src/filter-and-sample.tpl.tengo"...
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @platforma-open/milaboratories.top-antibodies.workflow
|
|
2
2
|
|
|
3
|
+
## 1.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c282203: Improved block performance. Fixed increasing ranking order and cluster size ranking
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [c282203]
|
|
12
|
+
- @platforma-open/milaboratories.top-antibodies.sample-clonotypes@1.3.0
|
|
13
|
+
|
|
3
14
|
## 1.9.0
|
|
4
15
|
|
|
5
16
|
### Minor Changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-open/milaboratories.top-antibodies.workflow",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Block Workflow",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@platforma-sdk/workflow-tengo": "^4.9.2",
|
|
8
|
-
"@platforma-open/milaboratories.top-antibodies.sample-clonotypes": "1.
|
|
9
|
-
"@platforma-open/milaboratories.top-antibodies.
|
|
10
|
-
"@platforma-open/milaboratories.top-antibodies.
|
|
8
|
+
"@platforma-open/milaboratories.top-antibodies.sample-clonotypes": "1.3.0",
|
|
9
|
+
"@platforma-open/milaboratories.top-antibodies.umap": "1.0.3",
|
|
10
|
+
"@platforma-open/milaboratories.top-antibodies.spectratype": "1.4.0"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@platforma-sdk/tengo-builder": "^2.1.12",
|
|
@@ -15,6 +15,7 @@ self.body(func(inputs) {
|
|
|
15
15
|
cloneTable := inputs.cloneTable
|
|
16
16
|
datasetSpec := inputs.datasetSpec
|
|
17
17
|
filterMap := inputs.filterMap
|
|
18
|
+
rankingMap := inputs.rankingMap
|
|
18
19
|
topClonotypes := inputs.topClonotypes
|
|
19
20
|
|
|
20
21
|
outputs := {}
|
|
@@ -58,6 +59,7 @@ self.body(func(inputs) {
|
|
|
58
59
|
addFile("filteredClonotypes.csv", filteredClonotypesCsv).
|
|
59
60
|
arg("--csv").arg("filteredClonotypes.csv").
|
|
60
61
|
arg("--n").arg(string(topClonotypes)).
|
|
62
|
+
arg("--ranking-map").arg(string(json.encode(rankingMap))).
|
|
61
63
|
arg("--out").arg("sampledClonotypes_top.csv").
|
|
62
64
|
saveFile("sampledClonotypes_top.csv").
|
|
63
65
|
printErrStreamToStdout().
|
package/src/main.tpl.tengo
CHANGED
|
@@ -49,6 +49,12 @@ wf.prepare(func(args){
|
|
|
49
49
|
partialAxesMatch: true
|
|
50
50
|
}, "linkers")
|
|
51
51
|
|
|
52
|
+
// Add cluster size columns from clustering blocks
|
|
53
|
+
bundleBuilder.addMulti({
|
|
54
|
+
name: "pl7.app/vdj/clustering/clusterSize",
|
|
55
|
+
partialAxesMatch: true
|
|
56
|
+
}, "clusterSizes")
|
|
57
|
+
|
|
52
58
|
// Add CDR3 sequences
|
|
53
59
|
bundleBuilder.addMulti({
|
|
54
60
|
axes: [{ anchor: "main", idx: 1 }], // Clonotype axis
|
|
@@ -104,6 +110,7 @@ wf.body(func(args) {
|
|
|
104
110
|
// AnchoredColumnId {anchorRef: PlRef, anchorName: string, column: SUniversalPColumnId (unique column id)}
|
|
105
111
|
addedAxes := [] // Keep track of axes that are added to the table to prevent duplicates
|
|
106
112
|
filterMap := {} // Map column headers to filter criteria
|
|
113
|
+
rankingMap := {} // Map column headers to ranking order (increasing/decreasing)
|
|
107
114
|
if len(args.filters) > 0 {
|
|
108
115
|
for i, filter in args.filters {
|
|
109
116
|
if filter.value != undefined {
|
|
@@ -132,6 +139,8 @@ wf.body(func(args) {
|
|
|
132
139
|
if len(args.rankingOrder) > 0 {
|
|
133
140
|
for i, col in args.rankingOrder {
|
|
134
141
|
cloneTable.add(columns.getColumn(col.value.column), {header: "Col" + string(i)})
|
|
142
|
+
// Store ranking order for this column
|
|
143
|
+
rankingMap["Col" + string(i)] = col.rankingOrder
|
|
135
144
|
|
|
136
145
|
// If column does not have main anchor axis we have to include theirs (columns coming from clustering blocks for example)
|
|
137
146
|
colsSpec := columns.getSpec(col.value.column)
|
|
@@ -147,6 +156,8 @@ wf.body(func(args) {
|
|
|
147
156
|
} else {
|
|
148
157
|
i := 0
|
|
149
158
|
cloneTable.add(columns.getColumn(args.rankingOrderDefault.value.column), {header: "Col" + string(i)})
|
|
159
|
+
// Store default ranking order
|
|
160
|
+
rankingMap["Col" + string(i)] = args.rankingOrderDefault.rankingOrder
|
|
150
161
|
|
|
151
162
|
// If column does not have main anchor axis we have to include theirs
|
|
152
163
|
colsSpec := columns.getSpec(args.rankingOrderDefault.value.column)
|
|
@@ -175,6 +186,20 @@ wf.body(func(args) {
|
|
|
175
186
|
}
|
|
176
187
|
}
|
|
177
188
|
}
|
|
189
|
+
|
|
190
|
+
// Add cluster size columns if available
|
|
191
|
+
if len(columns.getColumns("clusterSizes")) > 0 {
|
|
192
|
+
for i, col in columns.getColumns("clusterSizes") {
|
|
193
|
+
cloneTable.add(col, {header: "clusterSize." + string(i)})
|
|
194
|
+
// Add the cluster axis header
|
|
195
|
+
for axisIdx, axis in col.spec.axesSpec {
|
|
196
|
+
if axis.name != datasetSpec.axesSpec[1].name {
|
|
197
|
+
cloneTable.setAxisHeader(axis.name, "clusterAxis_" + string(i) + "_" + string(axisIdx))
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
178
203
|
cloneTable.mem("16GiB")
|
|
179
204
|
cloneTable.cpu(1)
|
|
180
205
|
cloneTable = cloneTable.build()
|
|
@@ -187,6 +212,7 @@ wf.body(func(args) {
|
|
|
187
212
|
rankingOrderDefault: args.rankingOrderDefault,
|
|
188
213
|
filters: args.filters,
|
|
189
214
|
filterMap: filterMap,
|
|
215
|
+
rankingMap: rankingMap,
|
|
190
216
|
datasetSpec: datasetSpec,
|
|
191
217
|
topClonotypes: args.topClonotypes
|
|
192
218
|
})
|
package/src/prerun.tpl.tengo
CHANGED
|
@@ -51,6 +51,12 @@ wf.prepare(func(args){
|
|
|
51
51
|
partialAxesMatch: true
|
|
52
52
|
}, "linkers")
|
|
53
53
|
|
|
54
|
+
// Add cluster size columns from clustering blocks
|
|
55
|
+
bundleBuilder.addMulti({
|
|
56
|
+
name: "pl7.app/vdj/clustering/clusterSize",
|
|
57
|
+
partialAxesMatch: true
|
|
58
|
+
}, "clusterSizes")
|
|
59
|
+
|
|
54
60
|
// Add CDR3 sequences
|
|
55
61
|
bundleBuilder.addMulti({
|
|
56
62
|
axes: [{ anchor: "main", idx: 1 }], // Clonotype axis
|
|
@@ -100,6 +106,7 @@ wf.body(func(args) {
|
|
|
100
106
|
// Add Filters to table
|
|
101
107
|
addedAxes := []
|
|
102
108
|
filterMap := {}
|
|
109
|
+
rankingMap := {}
|
|
103
110
|
if len(args.filters) > 0 {
|
|
104
111
|
for i, filter in args.filters {
|
|
105
112
|
if filter.value != undefined {
|
|
@@ -129,6 +136,8 @@ wf.body(func(args) {
|
|
|
129
136
|
for i, col in args.rankingOrder {
|
|
130
137
|
if col.value != undefined {
|
|
131
138
|
cloneTable.add(columns.getColumn(col.value.column), {header: "Col" + string(i)})
|
|
139
|
+
// Store ranking order for this column
|
|
140
|
+
rankingMap["Col" + string(i)] = col.rankingOrder
|
|
132
141
|
|
|
133
142
|
// If column does not have main anchor axis we have to include theirs
|
|
134
143
|
colsSpec := columns.getSpec(col.value.column)
|
|
@@ -148,6 +157,8 @@ wf.body(func(args) {
|
|
|
148
157
|
if args.rankingOrderDefault.value != undefined {
|
|
149
158
|
i := 0
|
|
150
159
|
cloneTable.add(columns.getColumn(args.rankingOrderDefault.value.column), {header: "Col" + string(i)})
|
|
160
|
+
// Store default ranking order
|
|
161
|
+
rankingMap["Col" + string(i)] = args.rankingOrderDefault.rankingOrder
|
|
151
162
|
|
|
152
163
|
// If column does not have main anchor axis we have to include theirs
|
|
153
164
|
colsSpec := columns.getSpec(args.rankingOrderDefault.value.column)
|
|
@@ -177,6 +188,20 @@ wf.body(func(args) {
|
|
|
177
188
|
}
|
|
178
189
|
}
|
|
179
190
|
}
|
|
191
|
+
|
|
192
|
+
// Add cluster size columns if available
|
|
193
|
+
if len(columns.getColumns("clusterSizes")) > 0 {
|
|
194
|
+
for i, col in columns.getColumns("clusterSizes") {
|
|
195
|
+
cloneTable.add(col, {header: "clusterSize." + string(i)})
|
|
196
|
+
// Add the cluster axis header
|
|
197
|
+
for axisIdx, axis in col.spec.axesSpec {
|
|
198
|
+
if axis.name != datasetSpec.axesSpec[1].name {
|
|
199
|
+
cloneTable.setAxisHeader(axis.name, "clusterAxis_" + string(i) + "_" + string(axisIdx))
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
180
205
|
cloneTable.mem("16GiB")
|
|
181
206
|
cloneTable.cpu(1)
|
|
182
207
|
cloneTable = cloneTable.build()
|
|
@@ -190,6 +215,7 @@ wf.body(func(args) {
|
|
|
190
215
|
rankingOrderDefault: args.rankingOrderDefault,
|
|
191
216
|
filters: args.filters,
|
|
192
217
|
filterMap: filterMap,
|
|
218
|
+
rankingMap: rankingMap,
|
|
193
219
|
datasetSpec: datasetSpec
|
|
194
220
|
})
|
|
195
221
|
|