@platforma-open/milaboratories.immune-assay-data.workflow 1.6.1 → 1.6.3

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,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/work/immune-assay-data/immune-assay-data/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.immune-assay-data.workflow@1.6.1 build /home/runner/work/immune-assay-data/immune-assay-data/workflow
3
+ > @platforma-open/milaboratories.immune-assay-data.workflow@1.6.3 build /home/runner/work/immune-assay-data/immune-assay-data/workflow
4
4
  > rm -rf dist && pl-tengo check && pl-tengo build
5
5
 
6
6
  Processing "src/build-outputs.tpl.tengo"...
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @platforma-open/milaboratories.immune-assay-data.workflow
2
2
 
3
+ ## 1.6.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 7b51d0b: Fix performance issue
8
+
9
+ ## 1.6.2
10
+
11
+ ### Patch Changes
12
+
13
+ - c903a35: Add MSA
14
+ - b85d0b1: Update SDK again
15
+ - f5ad6b1: Add MSA
16
+
3
17
  ## 1.6.1
4
18
 
5
19
  ### Patch Changes
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.immune-assay-data.workflow",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "type": "module",
5
5
  "description": "Tengo-based template",
6
6
  "dependencies": {
7
- "@platforma-sdk/workflow-tengo": "5.8.0",
7
+ "@platforma-sdk/workflow-tengo": "5.9.0",
8
8
  "@platforma-open/soedinglab.software-mmseqs2": "^1.17.2",
9
- "@platforma-open/milaboratories.immune-assay-data.coverage-mode-calc": "1.1.3",
10
9
  "@platforma-open/milaboratories.immune-assay-data.prepare-fasta": "1.1.3",
11
10
  "@platforma-open/milaboratories.immune-assay-data.add-header": "1.1.3",
12
- "@platforma-open/milaboratories.immune-assay-data.fasta-to-tsv": "1.1.3"
11
+ "@platforma-open/milaboratories.immune-assay-data.fasta-to-tsv": "1.1.3",
12
+ "@platforma-open/milaboratories.immune-assay-data.coverage-mode-calc": "1.1.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@platforma-sdk/tengo-builder": "2.4.8"
15
+ "@platforma-sdk/tengo-builder": "2.4.25"
16
16
  },
17
17
  "scripts": {
18
18
  "build": "rm -rf dist && pl-tengo check && pl-tengo build",
@@ -201,6 +201,47 @@ self.body(func(inputs) {
201
201
  { splitDataAndSpec: true, cpu: 1, mem: "16GiB" }
202
202
  )
203
203
 
204
+ // Create Linker pFrame connecting Clonotype ID to Assay Sequence Id
205
+ assayLinkerPframe := xsv.importFile(
206
+ inputs.bestAlignmentTsv, "tsv", {
207
+ axes: [
208
+ {
209
+ column: "query",
210
+ spec: inputs.datasetSpec.axesSpec[1]
211
+ },
212
+ {
213
+ column: "target",
214
+ spec: {
215
+ name: "pl7.app/vdj/assay/sequenceId",
216
+ type: "String",
217
+ domain: {
218
+ "pl7.app/blockId": inputs.blockId
219
+ },
220
+ annotations: {
221
+ "pl7.app/label": "Sequence Id",
222
+ "pl7.app/table/fontFamily": "monospace"
223
+ }
224
+ }
225
+ }
226
+ ],
227
+ columns: [{
228
+ column: "link",
229
+ spec: {
230
+ name: "pl7.app/vdj/link",
231
+ valueType: "Int",
232
+ annotations: {
233
+ "pl7.app/isLinkerColumn": "true",
234
+ "pl7.app/label": "Clone to assay link",
235
+ "pl7.app/table/visibility": "hidden"
236
+ }
237
+ }
238
+ }],
239
+ storageFormat: "Parquet",
240
+ partitionKeyLength: 0
241
+ },
242
+ { cpu: 1, mem: "16GiB" }
243
+ )
244
+
204
245
  // Create informative label with relevant matching parameters
205
246
  identityStr := string(inputs.settings.identity)
206
247
  coverageStr := string(inputs.settings.coverageThreshold)
@@ -226,7 +267,8 @@ self.body(func(inputs) {
226
267
 
227
268
  return {
228
269
  assayPframe: assayPframe,
229
- epf: epf
270
+ epf: epf,
271
+ assayLinkerPframe: pframes.exportFrame(assayLinkerPframe)
230
272
  }
231
273
  })
232
274
 
@@ -265,11 +265,13 @@ wf.body(func(args) {
265
265
 
266
266
  assayPframe := undefined
267
267
  epf := undefined
268
+ assayLinkerPframe := undefined
268
269
  uniqueValuesMap := undefined
269
270
 
270
271
  if emptyResults {
271
272
  assayPframe = pframes.emptyPFrame()
272
273
  epf = pframes.emptyPFrame()
274
+ assayLinkerPframe = pframes.emptyPFrame()
273
275
  } else {
274
276
  //////// Process tables ////////
275
277
  ptw := pt.workflow()
@@ -295,6 +297,12 @@ wf.body(func(args) {
295
297
  }
296
298
 
297
299
  df = df.groupBy("query").agg(cols...)
300
+
301
+ // Add link column for linker pFrame (assayLinkerPframe)
302
+ df = df.withColumns(
303
+ pt.lit(1).cast("Int64").alias("link")
304
+ )
305
+
298
306
  df.save("results.tsv")
299
307
 
300
308
  // assay data import summary
@@ -374,6 +382,7 @@ wf.body(func(args) {
374
382
  assaySequenceType: assaySequenceType,
375
383
  blockId: blockId,
376
384
  datasetSpec: datasetSpec,
385
+ bestAlignmentTsv: ptw.getFile("results.tsv"),
377
386
  assayDataTsv: ptw.getFile("assayData.tsv"),
378
387
  clonesDataTsv: ptw.getFile("clonesData.tsv"),
379
388
  uniqueValuesMap: uniqueValuesMap,
@@ -383,12 +392,14 @@ wf.body(func(args) {
383
392
  })
384
393
  assayPframe = buildOutputsResult.output("assayPframe")
385
394
  epf = buildOutputsResult.output("epf")
395
+ assayLinkerPframe = buildOutputsResult.output("assayLinkerPframe")
386
396
  }
387
397
 
388
398
  result := {
389
399
  outputs: {
390
400
  dataImportHandle: importFile.handle,
391
401
  table: assayPframe,
402
+ assayLinkerPframe: assayLinkerPframe,
392
403
  mmseqsOutput: mmseqsOutput, // @TODO tmp fix to resolve CID conflicts
393
404
  emptyResults: emptyResults }
394
405
  }