@platforma-open/milaboratories.antibody-variant-designer.block 1.0.0 → 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.
Binary file
@@ -3,6 +3,6 @@
3
3
  "id": {
4
4
  "organization": "milaboratories",
5
5
  "name": "antibody-variant-designer",
6
- "version": "1.0.0"
6
+ "version": "1.1.0"
7
7
  }
8
8
  }
package/block-pack/ui.tgz CHANGED
Binary file
package/dist/AGENTS.d.ts CHANGED
@@ -5120,6 +5120,31 @@ type PlDataTableStateV2 = {
5120
5120
  } | PlDataTableStateV2V6 | PlDataTableStateV2Normalized | PlDataTableStateV2Normalized$1;
5121
5121
  /** Upgrade PlDataTableStateV2 to the latest version */
5122
5122
  //#endregion
5123
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.80.13/node_modules/@platforma-sdk/model/dist/components/PlMultiSequenceAlignment.d.ts
5124
+ interface PlMultiSequenceAlignmentSettings {
5125
+ sequenceColumnIds?: PObjectId[];
5126
+ labelColumnIds?: PTableColumnId[];
5127
+ colorScheme: PlMultiSequenceAlignmentColorSchemeOption;
5128
+ widgets: PlMultiSequenceAlignmentWidget[];
5129
+ alignmentParams: {
5130
+ gpo: number;
5131
+ gpe: number;
5132
+ tgpe: number;
5133
+ };
5134
+ }
5135
+ type PlMultiSequenceAlignmentWidget = "consensus" | "seqLogo" | "tree" | "legend";
5136
+ interface PlMultiSequenceAlignmentModel extends Partial<PlMultiSequenceAlignmentSettings> {
5137
+ version?: number;
5138
+ }
5139
+ type PlMultiSequenceAlignmentColorSchemeOption = {
5140
+ type: "no-color";
5141
+ } | {
5142
+ type: "chemical-properties";
5143
+ } | {
5144
+ type: "markup";
5145
+ columnIds: PObjectId[];
5146
+ };
5147
+ //#endregion
5123
5148
  //#region ../model/dist/types.d.ts
5124
5149
  //#region src/types.d.ts
5125
5150
  /** A single dataset column reference, derived structurally from
@@ -5127,22 +5152,52 @@ type PlDataTableStateV2 = {
5127
5152
  * this SDK's public `@platforma-sdk/model` entry point does not re-export
5128
5153
  * a `PlRef` type. */
5129
5154
  type PlRef = NonNullable<DatasetSelection["primary"]>["column"];
5155
+ /** Which objectives a run designs against: liability removal alone, humanization alone, or
5156
+ * liability removal together with humanization. */
5157
+ type RunMode = "liabilities" | "humanization" | "liabilities + humanization";
5130
5158
  /** Unified user-editable state persisted by the model. */
5131
5159
  type BlockData$1 = {
5132
5160
  /** Structures dataset, and its optional Lead Selection subset, picked via
5133
5161
  * `PlDatasetSelector`. */
5134
5162
  dataset?: DatasetSelection;
5163
+ runMode: RunMode;
5135
5164
  rsasaBuriedCutoff: number;
5136
5165
  actOnFixability: string[];
5137
- maxEditsPerVariant: number;
5138
- frConfThresh: number;
5139
- cdrConfThresh: number;
5166
+ maxLiabilityEdits: number;
5167
+ maxFrameworkEdits: number;
5168
+ frConfidenceThreshold: number;
5169
+ cdrConfidenceThreshold: number;
5140
5170
  variantsPerParent: number;
5141
5171
  candidateResiduesPerPosition: number;
5172
+ structuralWeight: number;
5173
+ objectiveWeight: number;
5174
+ nonHumanPriorMargin: number;
5175
+ maxNewLiabilities: number;
5176
+ /** Taxonomy ids the humanization gate does not count as a liability. Empty
5177
+ * counts every one of them, so a liability the taxonomy gains later blocks
5178
+ * humanization until the operator unticks it. */
5179
+ humanizationIgnoredLiabilities: string[];
5142
5180
  lowToleranceFloor: number;
5143
- epistasisRescoreTopK: number; /** Results-table sort / filter / column state, one per page. */
5181
+ epistasisRescoreTopK: number;
5182
+ /** The spellings these fields carried before they were renamed to say the
5183
+ * quantity instead of abbreviating it. A project persisted under the old
5184
+ * names still holds them, and `.args()` reads them when the new key is
5185
+ * absent. Nothing writes them. */
5186
+ frConfThresh?: number;
5187
+ cdrConfThresh?: number;
5188
+ wStruct?: number;
5189
+ wObj?: number;
5190
+ /** The one cap a project persisted before it split into `maxLiabilityEdits`
5191
+ * and `maxFrameworkEdits`. `.args()` reads it as the liability cap when the
5192
+ * new key is absent; the framework cap has no old spelling to fall back to.
5193
+ * Nothing writes it. */
5194
+ maxEditsPerVariant?: number; /** Results-table sort / filter / column state, one per page. */
5144
5195
  variantsTableState: PlDataTableStateV2;
5145
5196
  liabilitiesTableState: PlDataTableStateV2;
5197
+ /** The comparison view alignment: which sequence and label columns are shown,
5198
+ * the colour scheme, and which widgets are on. UI-only — the component owns
5199
+ * every key, and an empty object is what it reads as "the current defaults". */
5200
+ alignmentModel: PlMultiSequenceAlignmentModel;
5146
5201
  /** Advanced Settings → Resource Allocation. Unset means the workflow's
5147
5202
  * own fixed size for that step; set overrides it. Never data-scaled —
5148
5203
  * the pipeline itself never derives these from input size, so a value
@@ -5163,13 +5218,20 @@ type BlockData$1 = {
5163
5218
  type BlockArgs = {
5164
5219
  primaryRef: NonNullable<DatasetSelection["primary"]>;
5165
5220
  subsetRef?: PlRef;
5221
+ runMode: RunMode;
5166
5222
  rsasaBuriedCutoff: number;
5167
5223
  actOnFixability: string[];
5168
- maxEditsPerVariant: number;
5169
- frConfThresh: number;
5170
- cdrConfThresh: number;
5224
+ maxLiabilityEdits: number;
5225
+ maxFrameworkEdits: number;
5226
+ frConfidenceThreshold: number;
5227
+ cdrConfidenceThreshold: number;
5171
5228
  variantsPerParent: number;
5172
5229
  candidateResiduesPerPosition: number;
5230
+ structuralWeight: number;
5231
+ objectiveWeight: number;
5232
+ nonHumanPriorMargin: number;
5233
+ maxNewLiabilities: number;
5234
+ humanizationIgnoredLiabilities: string[];
5173
5235
  lowToleranceFloor: number;
5174
5236
  epistasisRescoreTopK: number;
5175
5237
  indexAndScanCpu?: number;
@@ -5179,23 +5241,27 @@ type BlockArgs = {
5179
5241
  buildVariantsCpu?: number;
5180
5242
  buildVariantsMem?: number;
5181
5243
  };
5182
- /** The seven skip reasons the three steps can raise. `no-structure`,
5183
- * `structure-not-imgt`, `structure-multi-domain-chain` and
5184
- * `no-researchable-residue` come from index-and-scan's index phase;
5185
- * `no-liability-survived-triage` from its scan phase; `backend-failed` from
5186
- * read-tolerance; `no-candidate-cleared-motif` from build-variants. Kept as
5187
- * seven distinct values rather than folding the two later-added index-phase
5188
- * reasons into `no-structure`: each already has its own shipped skip TSV
5189
- * row, and merging them would under-report a structural-numbering failure
5190
- * as a missing-input one. */
5191
- type SkipReason = "no-structure" | "structure-not-imgt" | "structure-multi-domain-chain" | "no-researchable-residue" | "no-liability-survived-triage" | "backend-failed" | "no-candidate-cleared-motif";
5192
- /** One skipped parent, for the Skipped page.
5193
- * `detail` is free text and empty for every reason except `backend-failed`:
5194
- * the other six reasons are named, deterministic conditions already fully
5195
- * explained by the reason itself. */
5244
+ /** The rejection reasons the three steps can raise. Index-and-scan's index phase
5245
+ * raises `no-structure`, `structure-not-imgt`,
5246
+ * `structure-multi-domain-chain` and `no-researchable-residue`; its scan
5247
+ * phase `no-liability-survived-triage`; read-tolerance `backend-failed`;
5248
+ * build-variants the rest. Each value stays distinct rather than
5249
+ * folding into a neighbour: each already has its own shipped rejection TSV row,
5250
+ * and merging two would under-report one failure as another. */
5251
+ type RejectionReason = "no-structure" | "structure-not-imgt" | "structure-multi-domain-chain" | "no-researchable-residue" | "no-liability-survived-triage" | "backend-failed" | "no-candidate-cleared-the-gate" | "no-nonhuman-framework-position" | "no-tolerance-at-humanization-position" | "no-humanization-variant-cleared-the-gate";
5252
+ /** What was lost, over the two branches that write it. `parent` means the run
5253
+ * designed nothing for that clonotype — no candidate was ever built.
5254
+ * `variant` means either a candidate was built and a gate turned it away, or
5255
+ * the parent shipped a variant carrying no edit from this row's objective.
5256
+ * A refused candidate therefore writes `variant` even where the parent
5257
+ * shipped nothing. */
5258
+ type RejectedType = "parent" | "variant";
5259
+ /** One rejected parent or variant, for the Rejection Causes page.
5260
+ * `detail` is free text, empty where the reason stands alone and otherwise
5261
+ * carrying the measurement behind it: the caught exception on
5262
+ * `backend-failed`, the failed check on a design-gate reason. */
5196
5263
  //#endregion
5197
5264
  //#region ../model/dist/index.d.ts
5198
- //#region src/index.d.ts
5199
5265
  declare const platforma: PlatformaExtended<PlatformaV3<BlockData$1, BlockArgs, InferOutputsFromLambdas<{
5200
5266
  datasetOptions: ConfigRenderLambda<{
5201
5267
  readonly primary: {
@@ -16227,11 +16293,15 @@ declare const platforma: PlatformaExtended<PlatformaV3<BlockData$1, BlockArgs, I
16227
16293
  } & {
16228
16294
  synthesisCsv: ConfigRenderLambda<RemoteBlobHandleAndSize | undefined>;
16229
16295
  } & {
16230
- skippedClonotypes: ConfigRenderLambda<{
16296
+ rejectedClonotypes: ConfigRenderLambda<{
16231
16297
  clonotypeKey: string;
16232
- reason: SkipReason;
16298
+ reason: RejectionReason;
16233
16299
  detail: string;
16234
- }[] | undefined>;
16300
+ rejectedType: RejectedType;
16301
+ objective: string;
16302
+ }[] | undefined> & {
16303
+ withStatus: true;
16304
+ };
16235
16305
  } & {
16236
16306
  clonotypeLabelsPf: ConfigRenderLambda<PFrameHandle | undefined>;
16237
16307
  } & {
@@ -16245,7 +16315,24 @@ declare const platforma: PlatformaExtended<PlatformaV3<BlockData$1, BlockArgs, I
16245
16315
  [x: string]: string;
16246
16316
  } | undefined;
16247
16317
  } | undefined>;
16248
- }>, "/" | "/parents" | "/skipped", {}, BlockDefaultUiServices>>;
16318
+ } & {
16319
+ alignmentPf: ConfigRenderLambda<PFrameHandle | undefined>;
16320
+ } & {
16321
+ alignmentAxisSpec: ConfigRenderLambda<{
16322
+ readonly type: AxisValueType;
16323
+ readonly name: string;
16324
+ readonly domain?: {
16325
+ [x: string]: string;
16326
+ } | undefined;
16327
+ readonly contextDomain?: {
16328
+ [x: string]: string;
16329
+ } | undefined;
16330
+ readonly annotations?: {
16331
+ [x: string]: string;
16332
+ } | undefined;
16333
+ readonly parentAxes?: number[] | undefined;
16334
+ } | undefined>;
16335
+ }>, "/" | "/parents" | "/rejection-causes", {}, BlockDefaultUiServices>>;
16249
16336
  //#endregion
16250
16337
  //#region src/index.d.ts
16251
16338
  type BlockContract = {