@platforma-open/milaboratories.top-antibodies.workflow 1.14.0 → 1.15.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.
@@ -1,24 +1,24 @@
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.14.0 build /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow
3
+ > @platforma-open/milaboratories.top-antibodies.workflow@1.15.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/assembling-fasta.tpl.tengo"...
7
- Processing "src/libs/data-utils.lib.tengo"...
8
- Processing "src/libs/pf-kabat-conv.lib.tengo"...
9
- Processing "src/libs/pf-spectratype-conv.lib.tengo"...
10
- Processing "src/libs/pf-vj-usage-conv.lib.tengo"...
11
- Processing "src/libs/sampled-cols-conv.lib.tengo"...
7
+ Processing "src/filter-and-sample.tpl.tengo"...
12
8
  Processing "src/main.tpl.tengo"...
9
+ Processing "src/pf-kabat-conv.lib.tengo"...
10
+ Processing "src/pf-spectratype-conv.lib.tengo"...
11
+ Processing "src/pf-vj-usage-conv.lib.tengo"...
13
12
  Processing "src/prerun.tpl.tengo"...
13
+ Processing "src/sampled-cols-conv.lib.tengo"...
14
14
  No syntax errors found.
15
15
  info: Compiling 'dist'...
16
- info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/libs.data-utils.lib.tengo
17
- info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/libs.pf-kabat-conv.lib.tengo
18
- info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/libs.pf-spectratype-conv.lib.tengo
19
- info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/libs.pf-vj-usage-conv.lib.tengo
20
- info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/libs.sampled-cols-conv.lib.tengo
16
+ info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/pf-kabat-conv.lib.tengo
17
+ info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/pf-spectratype-conv.lib.tengo
18
+ info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/pf-vj-usage-conv.lib.tengo
19
+ info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/lib/sampled-cols-conv.lib.tengo
21
20
  info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/tpl/assembling-fasta.plj.gz
21
+ info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/tpl/filter-and-sample.plj.gz
22
22
  info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/tpl/prerun.plj.gz
23
23
  info: - writing /home/runner/work/antibody-tcr-lead-selection/antibody-tcr-lead-selection/workflow/dist/tengo/tpl/main.plj.gz
24
24
  info: Template Pack build done.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @platforma-open/milaboratories.top-antibodies.workflow
2
2
 
3
+ ## 1.15.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 00143a9: multiple clustering blocks fix, columns names fix, dependencies updates
8
+
9
+ ## 1.14.1
10
+
11
+ ### Patch Changes
12
+
13
+ - b99b7ba: Revert optimization changes
14
+ - Updated dependencies [b99b7ba]
15
+ - @platforma-open/milaboratories.top-antibodies.sample-clonotypes@1.7.1
16
+ - @platforma-open/milaboratories.top-antibodies.assembling-fasta@1.2.1
17
+ - @platforma-open/milaboratories.top-antibodies.anarci-kabat@1.2.1
18
+ - @platforma-open/milaboratories.top-antibodies.spectratype@1.7.1
19
+ - @platforma-open/milaboratories.top-antibodies.umap@1.2.1
20
+
3
21
  ## 1.14.0
4
22
 
5
23
  ### Minor Changes
package/dist/index.cjs CHANGED
@@ -1,5 +1,6 @@
1
1
  module.exports = { Templates: {
2
2
  'assembling-fasta': { type: 'from-file', path: require.resolve('./tengo/tpl/assembling-fasta.plj.gz') },
3
+ 'filter-and-sample': { type: 'from-file', path: require.resolve('./tengo/tpl/filter-and-sample.plj.gz') },
3
4
  'prerun': { type: 'from-file', path: require.resolve('./tengo/tpl/prerun.plj.gz') },
4
5
  'main': { type: 'from-file', path: require.resolve('./tengo/tpl/main.plj.gz') }
5
6
  }};
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  declare type TemplateFromFile = { readonly type: "from-file"; readonly path: string; };
2
- declare type TplName = "assembling-fasta" | "prerun" | "main";
2
+ declare type TplName = "assembling-fasta" | "filter-and-sample" | "prerun" | "main";
3
3
  declare const Templates: Record<TplName, TemplateFromFile>;
4
4
  export { Templates };
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { resolve } from 'node:path';
2
2
  export const Templates = {
3
3
  'assembling-fasta': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/assembling-fasta.plj.gz') },
4
+ 'filter-and-sample': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/filter-and-sample.plj.gz') },
4
5
  'prerun': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/prerun.plj.gz') },
5
6
  'main': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/main.plj.gz') }
6
7
  };
@@ -19,7 +19,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
19
19
  annotations: {
20
20
  "pl7.app/label": "KABAT sequence " + featureName + " Heavy",
21
21
  "pl7.app/table/orderPriority": "10",
22
- "pl7.app/table/visibility": "default"
22
+ "pl7.app/table/visibility": "default"
23
23
  }
24
24
  }
25
25
  },
@@ -34,7 +34,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
34
34
  annotations: {
35
35
  "pl7.app/label": "KABAT positions " + featureName + " Heavy",
36
36
  "pl7.app/table/orderPriority": "9",
37
- "pl7.app/table/visibility": "optional"
37
+ "pl7.app/table/visibility": "optional"
38
38
  }
39
39
  }
40
40
  }
@@ -53,7 +53,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
53
53
  annotations: {
54
54
  "pl7.app/label": "KABAT sequence " + featureName + " Light",
55
55
  "pl7.app/table/orderPriority": "8",
56
- "pl7.app/table/visibility": "default"
56
+ "pl7.app/table/visibility": "default"
57
57
  }
58
58
  }
59
59
  },
@@ -68,7 +68,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
68
68
  annotations: {
69
69
  "pl7.app/label": "KABAT positions " + featureName + " Light",
70
70
  "pl7.app/table/orderPriority": "7",
71
- "pl7.app/table/visibility": "optional"
71
+ "pl7.app/table/visibility": "optional"
72
72
  }
73
73
  }
74
74
  }
@@ -128,3 +128,4 @@ export ll.toStrict({
128
128
  getColumns: getColumns
129
129
  })
130
130
 
131
+
@@ -57,4 +57,3 @@ getColumns := func() {
57
57
  export ll.toStrict({
58
58
  getColumns: getColumns
59
59
  })
60
-
@@ -52,4 +52,3 @@ getColumns := func() {
52
52
  export ll.toStrict({
53
53
  getColumns: getColumns
54
54
  })
55
-
@@ -48,4 +48,3 @@ getColumns := func(datasetSpec, addRanking) {
48
48
  export ll.toStrict({
49
49
  getColumns: getColumns
50
50
  })
51
-
Binary file
Binary file
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.top-antibodies.workflow",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "type": "module",
5
5
  "description": "Block Workflow",
6
6
  "dependencies": {
7
- "@platforma-sdk/workflow-tengo": "^5.6.4",
7
+ "@platforma-sdk/workflow-tengo": "^5.6.6",
8
8
  "@platforma-open/milaboratories.software-anarci": "^0.0.3",
9
- "@platforma-open/milaboratories.top-antibodies.sample-clonotypes": "1.7.0",
10
- "@platforma-open/milaboratories.top-antibodies.umap": "1.2.0",
11
- "@platforma-open/milaboratories.top-antibodies.anarci-kabat": "1.2.0",
12
- "@platforma-open/milaboratories.top-antibodies.spectratype": "1.7.0",
13
- "@platforma-open/milaboratories.top-antibodies.assembling-fasta": "1.2.0"
9
+ "@platforma-open/milaboratories.top-antibodies.sample-clonotypes": "1.7.1",
10
+ "@platforma-open/milaboratories.top-antibodies.umap": "1.2.1",
11
+ "@platforma-open/milaboratories.top-antibodies.spectratype": "1.7.1",
12
+ "@platforma-open/milaboratories.top-antibodies.assembling-fasta": "1.2.1",
13
+ "@platforma-open/milaboratories.top-antibodies.anarci-kabat": "1.2.1"
14
14
  },
15
15
  "devDependencies": {
16
- "@platforma-sdk/tengo-builder": "^2.3.14",
17
- "@platforma-sdk/test": "^1.46.3",
16
+ "@platforma-sdk/tengo-builder": "^2.4.0",
17
+ "@platforma-sdk/test": "^1.47.3",
18
18
  "vitest": "^2.1.8"
19
19
  },
20
20
  "scripts": {
@@ -12,7 +12,7 @@ self.body(func(inputs) {
12
12
 
13
13
  inputTsv := inputs.inputTsv
14
14
  keyColumn := inputs.keyColumn // "clonotypeKey" or "scClonotypeKey"
15
- finalClonotypesParquet := inputs.finalClonotypesParquet // optional
15
+ finalClonotypesCsv := inputs.finalClonotypesCsv // optional
16
16
  isSingleCell := inputs.isSingleCell // boolean
17
17
  bulkChain := inputs.bulkChain // "H" or "KL" when !isSingleCell
18
18
 
@@ -25,9 +25,9 @@ self.body(func(inputs) {
25
25
  arg("--key_column").arg(keyColumn).
26
26
  arg("--output_fasta").arg("assembling.fasta")
27
27
 
28
- if finalClonotypesParquet != undefined {
29
- cmd = cmd.addFile("finalClonotypes.parquet", finalClonotypesParquet).
30
- arg("--final_clonotypes_parquet").arg("finalClonotypes.parquet")
28
+ if finalClonotypesCsv != undefined {
29
+ cmd = cmd.addFile("finalClonotypes.csv", finalClonotypesCsv).
30
+ arg("--final_clonotypes_csv").arg("finalClonotypes.csv")
31
31
  }
32
32
 
33
33
  cmd = cmd.saveFile("assembling.fasta").
@@ -0,0 +1,81 @@
1
+ // Template for clonotype filtering and sampling
2
+ self := import("@platforma-sdk/workflow-tengo:tpl")
3
+ exec := import("@platforma-sdk/workflow-tengo:exec")
4
+ assets := import("@platforma-sdk/workflow-tengo:assets")
5
+ pframes := import("@platforma-sdk/workflow-tengo:pframes")
6
+ xsv := import("@platforma-sdk/workflow-tengo:pframes.xsv")
7
+ render := import("@platforma-sdk/workflow-tengo:render")
8
+ sampledColsConv := import(":sampled-cols-conv")
9
+ json := import("json")
10
+
11
+ self.defineOutputs("sampledRows", "finalClonotypesCsv")
12
+
13
+ self.body(func(inputs) {
14
+
15
+ cloneTable := inputs.cloneTable
16
+ datasetSpec := inputs.datasetSpec
17
+ filterMap := inputs.filterMap
18
+ rankingMap := inputs.rankingMap
19
+ topClonotypes := inputs.topClonotypes
20
+
21
+ outputs := {}
22
+ finalClonotypesCsv := undefined
23
+
24
+ // Run filtering script
25
+ filterResult := exec.builder().
26
+ software(assets.importSoftware("@platforma-open/milaboratories.top-antibodies.sample-clonotypes:filter")).
27
+ mem("16GiB").
28
+ cpu(1).
29
+ addFile("clonotypes.csv", cloneTable).
30
+ arg("--csv").arg("clonotypes.csv").
31
+ arg("--out").arg("filteredClonotypes.csv").
32
+ arg("--filter-map").arg(string(json.encode(filterMap))).
33
+ saveFile("filteredClonotypes.csv").
34
+ printErrStreamToStdout().
35
+ cache(24 * 60 * 60 * 1000).
36
+ run()
37
+
38
+ // Save filtered CSV file
39
+ filteredClonotypesCsv := filterResult.getFile("filteredClonotypes.csv")
40
+
41
+ // Store outputs
42
+ sampledColsParams := sampledColsConv.getColumns(datasetSpec, false) // No ranking column
43
+ filteredClonotypesPf := xsv.importFile(filteredClonotypesCsv, "csv", sampledColsParams,
44
+ {cpu: 1, mem: "16GiB"})
45
+
46
+ // Prepare outputs in case there is no top ranking
47
+ outputs["sampledRows"] = pframes.exportFrame(filteredClonotypesPf)
48
+ finalClonotypesCsv = filteredClonotypesCsv
49
+
50
+ if topClonotypes != undefined {
51
+
52
+ ////////// Top Clonotypes Sampling //////////
53
+ // Run sampling script on filtered data
54
+ sampleClones := exec.builder().
55
+ software(assets.importSoftware("@platforma-open/milaboratories.top-antibodies.sample-clonotypes:main")).
56
+ mem("16GiB").
57
+ cpu(1).
58
+ addFile("filteredClonotypes.csv", filteredClonotypesCsv).
59
+ arg("--csv").arg("filteredClonotypes.csv").
60
+ arg("--n").arg(string(topClonotypes)).
61
+ arg("--ranking-map").arg(string(json.encode(rankingMap))).
62
+ arg("--out").arg("sampledClonotypes_top.csv").
63
+ saveFile("sampledClonotypes_top.csv").
64
+ printErrStreamToStdout().
65
+ cache(24 * 60 * 60 * 1000).
66
+ run()
67
+
68
+ // Save top clonotypes CSV file
69
+ finalClonotypesCsv = sampleClones.getFile("sampledClonotypes_top.csv")
70
+
71
+ // Store outputs
72
+ sampledColsParams := sampledColsConv.getColumns(datasetSpec, true) // Add ranking column
73
+ sampledColumnsPf := xsv.importFile(finalClonotypesCsv, "csv", sampledColsParams,
74
+ {cpu: 1, mem: "16GiB"})
75
+ outputs["sampledRows"] = pframes.exportFrame(sampledColumnsPf)
76
+ }
77
+
78
+ outputs["finalClonotypesCsv"] = finalClonotypesCsv
79
+
80
+ return outputs
81
+ })
@@ -19,7 +19,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
19
19
  annotations: {
20
20
  "pl7.app/label": "KABAT sequence " + featureName + " Heavy",
21
21
  "pl7.app/table/orderPriority": "10",
22
- "pl7.app/table/visibility": "default"
22
+ "pl7.app/table/visibility": "default"
23
23
  }
24
24
  }
25
25
  },
@@ -34,7 +34,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
34
34
  annotations: {
35
35
  "pl7.app/label": "KABAT positions " + featureName + " Heavy",
36
36
  "pl7.app/table/orderPriority": "9",
37
- "pl7.app/table/visibility": "optional"
37
+ "pl7.app/table/visibility": "optional"
38
38
  }
39
39
  }
40
40
  }
@@ -53,7 +53,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
53
53
  annotations: {
54
54
  "pl7.app/label": "KABAT sequence " + featureName + " Light",
55
55
  "pl7.app/table/orderPriority": "8",
56
- "pl7.app/table/visibility": "default"
56
+ "pl7.app/table/visibility": "default"
57
57
  }
58
58
  }
59
59
  },
@@ -68,7 +68,7 @@ getColumns := func(datasetSpec, featureName, bulkChain) {
68
68
  annotations: {
69
69
  "pl7.app/label": "KABAT positions " + featureName + " Light",
70
70
  "pl7.app/table/orderPriority": "7",
71
- "pl7.app/table/visibility": "optional"
71
+ "pl7.app/table/visibility": "optional"
72
72
  }
73
73
  }
74
74
  }
@@ -128,3 +128,4 @@ export ll.toStrict({
128
128
  getColumns: getColumns
129
129
  })
130
130
 
131
+
@@ -57,4 +57,3 @@ getColumns := func() {
57
57
  export ll.toStrict({
58
58
  getColumns: getColumns
59
59
  })
60
-
@@ -52,4 +52,3 @@ getColumns := func() {
52
52
  export ll.toStrict({
53
53
  getColumns: getColumns
54
54
  })
55
-