@platforma-open/milaboratories.top-antibodies.workflow 1.4.0 → 1.5.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 +7 -0
- package/dist/tengo/tpl/main.plj.gz +0 -0
- package/package.json +3 -3
- package/src/main.tpl.tengo +61 -36
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/top-antibodies/top-antibodies/.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.5.0 build /home/runner/work/top-antibodies/top-antibodies/workflow
|
|
4
4
|
> rm -rf dist && pl-tengo check && pl-tengo build
|
|
5
5
|
|
|
6
6
|
Processing "src/main.tpl.tengo"...
|
package/CHANGELOG.md
CHANGED
|
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.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Block Workflow",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@platforma-sdk/workflow-tengo": "^4.7.1",
|
|
8
|
-
"@platforma-open/milaboratories.top-antibodies.
|
|
8
|
+
"@platforma-open/milaboratories.top-antibodies.sample-clonotypes": "1.0.3",
|
|
9
9
|
"@platforma-open/milaboratories.top-antibodies.umap": "1.0.3",
|
|
10
|
-
"@platforma-open/milaboratories.top-antibodies.
|
|
10
|
+
"@platforma-open/milaboratories.top-antibodies.spectratype": "1.3.2"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@platforma-sdk/tengo-builder": "^2.1.7",
|
package/src/main.tpl.tengo
CHANGED
|
@@ -16,10 +16,17 @@ wf.prepare(func(args){
|
|
|
16
16
|
bundleBuilder.ignoreMissingDomains() // to make query work for both bulk and single cell data
|
|
17
17
|
bundleBuilder.addAnchor("main", args.inputAnchor)
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
if len(args.rankingOrder) > 0 {
|
|
20
|
+
for col in args.rankingOrder {
|
|
21
|
+
bundleBuilder.addAnchor(col.value.anchorName, col.value.anchorRef)
|
|
22
|
+
bundleBuilder.addSingle(col.value.column)
|
|
23
|
+
}
|
|
24
|
+
} else {
|
|
25
|
+
bundleBuilder.addAnchor(args.rankingOrderDefault.value.anchorName,
|
|
26
|
+
args.rankingOrderDefault.value.anchorRef)
|
|
27
|
+
bundleBuilder.addSingle(args.rankingOrderDefault.value.column)
|
|
22
28
|
}
|
|
29
|
+
|
|
23
30
|
|
|
24
31
|
// Add linker column
|
|
25
32
|
bundleBuilder.addMulti({
|
|
@@ -89,43 +96,61 @@ wf.body(func(args) {
|
|
|
89
96
|
|
|
90
97
|
////////// Clonotype Filtering //////////
|
|
91
98
|
|
|
92
|
-
|
|
93
|
-
cloneTable := pframes.csvFileBuilder()
|
|
94
|
-
cloneTable.setAxisHeader(datasetSpec.axesSpec[1].name, "clonotypeKey")
|
|
95
|
-
|
|
96
|
-
for i, col in args.rankingOrder {
|
|
97
|
-
cloneTable.add(columns.getColumn(col.value.column), {header: "Col" + string(i)})
|
|
98
|
-
|
|
99
|
-
// If column does not have main anchor axis we have to include theirs
|
|
100
|
-
colsSpec := columns.getSpec(col.value.column)
|
|
101
|
-
axesNames := slices.map(colsSpec.axesSpec, func (a) { return a.name})
|
|
102
|
-
if !slices.hasElement(axesNames, datasetSpec.axesSpec[1].name) {
|
|
103
|
-
for na, ax in colsSpec.axesSpec {
|
|
104
|
-
if ax.name != datasetSpec.axesSpec[1].name {
|
|
105
|
-
cloneTable.setAxisHeader(ax.name, "cluster_" + string(i) + string(na))
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
99
|
+
topClonotypesCsv := undefined
|
|
110
100
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
101
|
+
if topClonotypes != undefined {
|
|
102
|
+
// Build clonotype table
|
|
103
|
+
cloneTable := pframes.csvFileBuilder()
|
|
104
|
+
cloneTable.setAxisHeader(datasetSpec.axesSpec[1].name, "clonotypeKey")
|
|
105
|
+
|
|
106
|
+
if len(args.rankingOrder) > 0 {
|
|
107
|
+
for i, col in args.rankingOrder {
|
|
108
|
+
cloneTable.add(columns.getColumn(col.value.column), {header: "Col" + string(i)})
|
|
109
|
+
|
|
110
|
+
// If column does not have main anchor axis we have to include theirs
|
|
111
|
+
colsSpec := columns.getSpec(col.value.column)
|
|
112
|
+
axesNames := slices.map(colsSpec.axesSpec, func (a) { return a.name})
|
|
113
|
+
if !slices.hasElement(axesNames, datasetSpec.axesSpec[1].name) {
|
|
114
|
+
for na, ax in colsSpec.axesSpec {
|
|
115
|
+
if ax.name != datasetSpec.axesSpec[1].name {
|
|
116
|
+
cloneTable.setAxisHeader(ax.name, "cluster_" + string(i) + string(na))
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
} else {
|
|
122
|
+
i := 0
|
|
123
|
+
cloneTable.add(columns.getColumn(args.rankingOrderDefault.value.column), {header: "Col" + string(i)})
|
|
124
|
+
|
|
125
|
+
// If column does not have main anchor axis we have to include theirs
|
|
126
|
+
colsSpec := columns.getSpec(args.rankingOrderDefault.value.column)
|
|
127
|
+
axesNames := slices.map(colsSpec.axesSpec, func (a) { return a.name})
|
|
128
|
+
if !slices.hasElement(axesNames, datasetSpec.axesSpec[1].name) {
|
|
129
|
+
for na, ax in colsSpec.axesSpec {
|
|
130
|
+
if ax.name != datasetSpec.axesSpec[1].name {
|
|
131
|
+
cloneTable.setAxisHeader(ax.name, "cluster_" + string(i) + string(na))
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
122
135
|
}
|
|
123
|
-
}
|
|
124
|
-
cloneTable = cloneTable.build()
|
|
125
136
|
|
|
126
|
-
|
|
137
|
+
// Columns gotten by query require .key
|
|
138
|
+
linkerAxisSpec := {}
|
|
139
|
+
if len(columns.getColumns("linkers")) > 0 {
|
|
140
|
+
for i, col in columns.getColumns("linkers") {
|
|
141
|
+
if datasetSpec.axesSpec[1].name == col.spec.axesSpec[1].name {
|
|
142
|
+
cloneTable.add(col, {header: "linker." + string(i)})
|
|
143
|
+
cloneTable.setAxisHeader(col.spec.axesSpec[0].name, "cluster_" + string(i))
|
|
144
|
+
linkerAxisSpec["cluster_" + string(i)] = col.spec.axesSpec[0]
|
|
145
|
+
} else if datasetSpec.axesSpec[1].name == col.spec.axesSpec[0].name {
|
|
146
|
+
cloneTable.add(col, {header: "linker." + string(i)})
|
|
147
|
+
cloneTable.setAxisHeader(col.spec.axesSpec[1].name, "cluster_" + string(i))
|
|
148
|
+
linkerAxisSpec["cluster_" + string(i)] = col.spec.axesSpec[1]
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
cloneTable = cloneTable.build()
|
|
127
153
|
|
|
128
|
-
if topClonotypes != undefined {
|
|
129
154
|
// Run sampling script
|
|
130
155
|
sampleClones := exec.builder().
|
|
131
156
|
software(assets.importSoftware("@platforma-open/milaboratories.top-antibodies.sample-clonotypes:main")).
|