Julenmendieta/MILAB-5143_supportMultipleChainsInRedefine - #41
Julenmendieta/MILAB-5143_supportMultipleChainsInRedefine#41julenmendieta wants to merge 4 commits into
Conversation
Expose a spec-only PColumn that carries clonotypingRunId in its domain and propagates the dataset trace. This enables downstream blocks to discover import-vdj runs the same way they discover MiXCR runs via mixcr.com/clns, using a single per-block entry point to locate all associated chain tables.
There was a problem hiding this comment.
Code Review
This pull request updates several @platforma-sdk and @milaboratories dependencies and introduces a new 'run' marker column to the result pframe in both bulk and single-cell VDJ import workflows to facilitate downstream block discovery. A critical issue was identified in both workflow files where the result.add method is missing its third argument (the data resource), which will likely lead to runtime errors during execution.
| result.add("run", runTrace.inject({ | ||
| kind: "PColumn", | ||
| name: "pl7.app/vdj/run", | ||
| axesSpec: [], | ||
| domain: { | ||
| "pl7.app/vdj/clonotypingRunId": blockId | ||
| }, | ||
| valueType: "String", | ||
| annotations: { | ||
| "pl7.app/label": "VDJ Import Run" | ||
| } | ||
| })) |
There was a problem hiding this comment.
The result.add method in the pFrameBuilder typically requires three arguments: the column key, the column specification, and the data resource. Currently, the third argument (data) is missing, which will likely cause a runtime error during workflow execution. Since this is a marker column with valueType: "String", you should provide a string value, such as blockId.
result.add("run", runTrace.inject({
kind: "PColumn",
name: "pl7.app/vdj/run",
axesSpec: [],
domain: {
"pl7.app/vdj/clonotypingRunId": blockId
},
valueType: "String",
annotations: {
"pl7.app/label": "VDJ Import Run"
}
}), blockId)
There was a problem hiding this comment.
I don't believe this is correct, https://github.com/milaboratory/platforma/blob/main/sdk/workflow-tengo/src/pframes/builder.lib.tengo#L17-L19 handles when nothing is passed in for data
| result.add("run", runTrace.inject({ | ||
| kind: "PColumn", | ||
| name: "pl7.app/vdj/run", | ||
| axesSpec: [], | ||
| domain: { | ||
| "pl7.app/vdj/clonotypingRunId": blockId | ||
| }, | ||
| valueType: "String", | ||
| annotations: { | ||
| "pl7.app/label": "VDJ Import Run" | ||
| } | ||
| })) |
There was a problem hiding this comment.
The result.add method is missing its third argument (the data resource). For a marker column of type String, you should pass a value (e.g., blockId) to ensure the column is correctly added to the PFrame and to avoid runtime errors during workflow execution.
result.add("run", runTrace.inject({
kind: "PColumn",
name: "pl7.app/vdj/run",
axesSpec: [],
domain: {
"pl7.app/vdj/clonotypingRunId": blockId
},
valueType: "String",
annotations: {
"pl7.app/label": "VDJ Import Run"
}
}), blockId)
No description provided.