@platforma-open/milaboratories.3d-structure-prediction.workflow 1.0.8 → 1.1.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,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/work/3d-structure-prediction/3d-structure-prediction/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.3d-structure-prediction.workflow@1.0.8 build /home/runner/work/3d-structure-prediction/3d-structure-prediction/workflow
3
+ > @platforma-open/milaboratories.3d-structure-prediction.workflow@1.1.0 build /home/runner/work/3d-structure-prediction/3d-structure-prediction/workflow
4
4
  > shx rm -rf dist && pl-tengo check && pl-tengo build
5
5
 
6
6
  info: Skipping unknown file type: wf.test.ts
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @platforma-open/milaboratories.3d-structure-prediction.workflow
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 35caf17: Make subset columns (`confident`, `predictionSuccessful`) distinguishable per block instance. The spec domain now carries `pl7.app/structure/prediction/blockId`, so two 3D-prediction instances on the same dataset no longer collapse into one entry in downstream dataset selectors. The trace label uses the instance's `customBlockLabel` / `defaultBlockLabel` instead of the hardcoded `"3D Structure Prediction"`, so consumers can tell instances apart.
8
+
3
9
  ## 1.0.8
4
10
 
5
11
  ### Patch Changes
@@ -160,7 +160,7 @@ getPdbsMapSpec := func() {
160
160
 
161
161
 
162
162
 
163
- getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
163
+ getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName, blockId) {
164
164
  return {
165
165
  axes: [{ column: clonotypeAxisName, spec: clonotypeAxisSpec }],
166
166
  columns: [{
@@ -168,6 +168,7 @@ getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
168
168
  spec: {
169
169
  valueType: "Int",
170
170
  name: "pl7.app/structure/predictionSuccessful",
171
+ domain: { "pl7.app/structure/prediction/blockId": blockId },
171
172
  annotations: {
172
173
  "pl7.app/label": "All structures",
173
174
  "pl7.app/isSubset": "true",
@@ -181,7 +182,7 @@ getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
181
182
 
182
183
 
183
184
 
184
- getConfidentSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
185
+ getConfidentSettings := func(clonotypeAxisSpec, clonotypeAxisName, blockId) {
185
186
  return {
186
187
  axes: [{ column: clonotypeAxisName, spec: clonotypeAxisSpec }],
187
188
  columns: [{
@@ -189,6 +190,7 @@ getConfidentSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
189
190
  spec: {
190
191
  valueType: "Int",
191
192
  name: "pl7.app/structure/confident",
193
+ domain: { "pl7.app/structure/prediction/blockId": blockId },
192
194
  annotations: {
193
195
  "pl7.app/label": "Confident structures",
194
196
  "pl7.app/isSubset": "true",
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.3d-structure-prediction.workflow",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "Block Workflow",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@platforma-sdk/workflow-tengo": "5.25.0",
7
+ "@platforma-sdk/workflow-tengo": "6.0.0",
8
8
  "@platforma-open/milaboratories.3d-structure-prediction.software": "1.0.6"
9
9
  },
10
10
  "devDependencies": {
11
- "@platforma-sdk/tengo-builder": "3.0.4",
12
- "@platforma-sdk/test": "1.77.5"
11
+ "@platforma-sdk/tengo-builder": "3.0.5",
12
+ "@platforma-sdk/test": "1.77.14"
13
13
  },
14
14
  "peerDependencies": {
15
15
  "vitest": "*"
@@ -167,11 +167,30 @@ wf.body(func(args) {
167
167
  )
168
168
 
169
169
  // Trace stamp for every confidence + subset column.
170
+ traceLabel := args.customBlockLabel
171
+ if is_undefined(traceLabel) || traceLabel == "" {
172
+ traceLabel = args.defaultBlockLabel
173
+ }
174
+ if is_undefined(traceLabel) || traceLabel == "" {
175
+ traceLabel = "3D Structure Prediction"
176
+ }
170
177
  trace := pSpec.makeTrace(datasetSpec, {
171
178
  type: "milaboratories.3d-structure-prediction",
172
179
  id: blockId,
173
180
  importance: 20,
174
- label: "3D Structure Prediction"
181
+ label: traceLabel
182
+ })
183
+ confidentTrace := pSpec.makeTrace(datasetSpec, {
184
+ type: "milaboratories.3d-structure-prediction",
185
+ id: blockId,
186
+ importance: 20,
187
+ label: "Confident structures - " + traceLabel
188
+ })
189
+ predictionSuccessfulTrace := pSpec.makeTrace(datasetSpec, {
190
+ type: "milaboratories.3d-structure-prediction",
191
+ id: blockId,
192
+ importance: 20,
193
+ label: "All structures - " + traceLabel
175
194
  })
176
195
 
177
196
  // Confidence pframe — one PColumn per Xsv column declared above.
@@ -205,12 +224,12 @@ wf.body(func(args) {
205
224
 
206
225
  predictionSuccessfulPf := xsv.importFile(
207
226
  subsetRun.getFile("subsets.tsv"), "tsv",
208
- structureColsConv.getPredictionSuccessfulSettings(clonotypeAxisSpec, clonotypeAxisName),
227
+ structureColsConv.getPredictionSuccessfulSettings(clonotypeAxisSpec, clonotypeAxisName, blockId),
209
228
  { splitDataAndSpec: true })
210
229
 
211
230
  confidentPf := xsv.importFile(
212
231
  subsetRun.getFile("confident.tsv"), "tsv",
213
- structureColsConv.getConfidentSettings(clonotypeAxisSpec, clonotypeAxisName),
232
+ structureColsConv.getConfidentSettings(clonotypeAxisSpec, clonotypeAxisName, blockId),
214
233
  { splitDataAndSpec: true })
215
234
 
216
235
  // Final structures pframe: confidence + subset columns. The label column
@@ -221,10 +240,10 @@ wf.body(func(args) {
221
240
  finalPfb.add(col.id, trace.inject(out.spec), out.data)
222
241
  }
223
242
  for k, v in predictionSuccessfulPf {
224
- finalPfb.add("subset/" + k, trace.inject(v.spec), v.data)
243
+ finalPfb.add("subset/" + k, predictionSuccessfulTrace.inject(v.spec), v.data)
225
244
  }
226
245
  for k, v in confidentPf {
227
- finalPfb.add("subset/" + k, trace.inject(v.spec), v.data)
246
+ finalPfb.add("subset/" + k, confidentTrace.inject(v.spec), v.data)
228
247
  }
229
248
  finalPf := finalPfb.build()
230
249
 
@@ -160,7 +160,7 @@ getPdbsMapSpec := func() {
160
160
 
161
161
  // xsv.importFile settings for the predictionSuccessful subset PColumn —
162
162
  // 1 = prediction succeeded (failureReason was null), 0 = failed.
163
- getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
163
+ getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName, blockId) {
164
164
  return {
165
165
  axes: [{ column: clonotypeAxisName, spec: clonotypeAxisSpec }],
166
166
  columns: [{
@@ -168,6 +168,7 @@ getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
168
168
  spec: {
169
169
  valueType: "Int",
170
170
  name: "pl7.app/structure/predictionSuccessful",
171
+ domain: { "pl7.app/structure/prediction/blockId": blockId },
171
172
  annotations: {
172
173
  "pl7.app/label": "All structures",
173
174
  "pl7.app/isSubset": "true",
@@ -181,7 +182,7 @@ getPredictionSuccessfulSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
181
182
 
182
183
  // xsv.importFile settings for the `confident` subset PColumn — 1 when the
183
184
  // user-selected confidence metric is ≤ threshold AND prediction succeeded.
184
- getConfidentSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
185
+ getConfidentSettings := func(clonotypeAxisSpec, clonotypeAxisName, blockId) {
185
186
  return {
186
187
  axes: [{ column: clonotypeAxisName, spec: clonotypeAxisSpec }],
187
188
  columns: [{
@@ -189,6 +190,7 @@ getConfidentSettings := func(clonotypeAxisSpec, clonotypeAxisName) {
189
190
  spec: {
190
191
  valueType: "Int",
191
192
  name: "pl7.app/structure/confident",
193
+ domain: { "pl7.app/structure/prediction/blockId": blockId },
192
194
  annotations: {
193
195
  "pl7.app/label": "Confident structures",
194
196
  "pl7.app/isSubset": "true",