@platforma-open/milaboratories.clonotype-clustering.model 2.14.0 → 2.14.1
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.
- package/.turbo/turbo-build.log +5 -3
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/bundle.js +212 -142
- package/dist/bundle.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/model.json +1 -1
- package/package.json +4 -4
- package/src/index.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/clonotype-clustering/clonotype-clustering/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-open/milaboratories.clonotype-clustering.model@2.14.
|
|
3
|
+
> @platforma-open/milaboratories.clonotype-clustering.model@2.14.1 build /home/runner/work/clonotype-clustering/clonotype-clustering/model
|
|
4
4
|
> ts-builder build --target block-model && block-tools build-model
|
|
5
5
|
|
|
6
6
|
Building block-model project...
|
|
7
7
|
↳ rollup -c /home/runner/work/clonotype-clustering/clonotype-clustering/node_modules/.pnpm/@milaboratories+ts-builder@1.2.1_@microsoft+api-extractor@7.55.2_@types+node@24.5.2__@types+n_6gqrcohg6rrrhu5lui6bcpwgfa/node_modules/@milaboratories/ts-builder/dist/configs/rollup.block-model.config.js
|
|
8
8
|
[36m
|
|
9
9
|
[1m./src/index.ts[22m → [1mdist, dist[22m...[39m
|
|
10
|
-
[32mcreated [1mdist, dist[22m in [
|
|
10
|
+
[32mcreated [1mdist, dist[22m in [1m2.5s[22m[39m
|
|
11
11
|
[36m
|
|
12
12
|
[1m./src/index.ts[22m → [1mdist[22m...[39m
|
|
13
|
-
[
|
|
13
|
+
[1m[33m(!) Circular dependency[39m[22m
|
|
14
|
+
../node_modules/.pnpm/@platforma-sdk+model@1.49.0/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js -> ../node_modules/.pnpm/@platforma-sdk+model@1.49.0/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js -> ../node_modules/.pnpm/@platforma-sdk+model@1.49.0/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
|
|
15
|
+
[32mcreated [1mdist[22m in [1m3.2s[22m[39m
|
|
14
16
|
Build completed successfully
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/clonotype-clustering/clonotype-clustering/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-open/milaboratories.clonotype-clustering.model@2.14.
|
|
3
|
+
> @platforma-open/milaboratories.clonotype-clustering.model@2.14.1 lint /home/runner/work/clonotype-clustering/clonotype-clustering/model
|
|
4
4
|
> eslint .
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/work/clonotype-clustering/clonotype-clustering/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-open/milaboratories.clonotype-clustering.model@2.14.
|
|
3
|
+
> @platforma-open/milaboratories.clonotype-clustering.model@2.14.1 type-check /home/runner/work/clonotype-clustering/clonotype-clustering/model
|
|
4
4
|
> ts-builder types --target block-model
|
|
5
5
|
|
|
6
6
|
↳ tsc --noEmit --project ./tsconfig.json --customConditions ,
|
package/CHANGELOG.md
CHANGED
package/dist/bundle.js
CHANGED
|
@@ -7373,7 +7373,7 @@
|
|
|
7373
7373
|
}
|
|
7374
7374
|
}
|
|
7375
7375
|
|
|
7376
|
-
var version = "1.
|
|
7376
|
+
var version = "1.49.0";
|
|
7377
7377
|
|
|
7378
7378
|
const PlatformaSDKVersion = version;
|
|
7379
7379
|
|
|
@@ -7393,52 +7393,52 @@
|
|
|
7393
7393
|
* to call {@link done()} at the end of configuration. Value returned by this builder must be
|
|
7394
7394
|
* exported as constant with name "platforma" from the "config" module. */
|
|
7395
7395
|
class BlockModel {
|
|
7396
|
-
|
|
7397
|
-
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
7401
|
-
|
|
7402
|
-
|
|
7403
|
-
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
this._initialArgs = _initialArgs;
|
|
7408
|
-
this._initialUiState = _initialUiState;
|
|
7409
|
-
this._outputs = _outputs;
|
|
7410
|
-
this._inputsValid = _inputsValid;
|
|
7411
|
-
this._sections = _sections;
|
|
7412
|
-
this._title = _title;
|
|
7413
|
-
this._enrichmentTargets = _enrichmentTargets;
|
|
7414
|
-
this._featureFlags = _featureFlags;
|
|
7415
|
-
}
|
|
7416
|
-
static INITIAL_BLOCK_FEATURE_FLAGS = {
|
|
7417
|
-
supportsLazyState: true,
|
|
7418
|
-
requiresUIAPIVersion: 1,
|
|
7419
|
-
requiresModelAPIVersion: 1,
|
|
7420
|
-
};
|
|
7396
|
+
config;
|
|
7397
|
+
constructor(config) {
|
|
7398
|
+
this.config = config;
|
|
7399
|
+
}
|
|
7400
|
+
static get INITIAL_BLOCK_FEATURE_FLAGS() {
|
|
7401
|
+
return {
|
|
7402
|
+
supportsLazyState: true,
|
|
7403
|
+
requiresUIAPIVersion: 1,
|
|
7404
|
+
requiresModelAPIVersion: 1,
|
|
7405
|
+
};
|
|
7406
|
+
}
|
|
7421
7407
|
static create(renderingMode = 'Heavy') {
|
|
7422
|
-
return new BlockModel(
|
|
7408
|
+
return new BlockModel({
|
|
7409
|
+
renderingMode,
|
|
7410
|
+
initialUiState: {},
|
|
7411
|
+
outputs: {},
|
|
7412
|
+
inputsValid: getImmediate(true),
|
|
7413
|
+
sections: getImmediate([]),
|
|
7414
|
+
featureFlags: BlockModel.INITIAL_BLOCK_FEATURE_FLAGS,
|
|
7415
|
+
});
|
|
7423
7416
|
}
|
|
7424
7417
|
output(key, cfgOrRf, flags = {}) {
|
|
7425
7418
|
if (typeof cfgOrRf === 'function') {
|
|
7426
7419
|
const handle = `output#${key}`;
|
|
7427
7420
|
tryRegisterCallback(handle, () => cfgOrRf(new RenderCtx()));
|
|
7428
|
-
return new BlockModel(
|
|
7429
|
-
...this.
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7433
|
-
|
|
7421
|
+
return new BlockModel({
|
|
7422
|
+
...this.config,
|
|
7423
|
+
outputs: {
|
|
7424
|
+
...this.config.outputs,
|
|
7425
|
+
[key]: {
|
|
7426
|
+
__renderLambda: true,
|
|
7427
|
+
handle,
|
|
7428
|
+
...flags,
|
|
7429
|
+
},
|
|
7434
7430
|
},
|
|
7435
|
-
}
|
|
7431
|
+
});
|
|
7432
|
+
}
|
|
7433
|
+
else {
|
|
7434
|
+
return new BlockModel({
|
|
7435
|
+
...this.config,
|
|
7436
|
+
outputs: {
|
|
7437
|
+
...this.config.outputs,
|
|
7438
|
+
[key]: cfgOrRf,
|
|
7439
|
+
},
|
|
7440
|
+
});
|
|
7436
7441
|
}
|
|
7437
|
-
else
|
|
7438
|
-
return new BlockModel(this._renderingMode, this._initialArgs, this._initialUiState, {
|
|
7439
|
-
...this._outputs,
|
|
7440
|
-
[key]: cfgOrRf,
|
|
7441
|
-
}, this._inputsValid, this._sections, this._title, this._enrichmentTargets, this._featureFlags);
|
|
7442
7442
|
}
|
|
7443
7443
|
/** Shortcut for {@link output} with retentive flag set to true. */
|
|
7444
7444
|
retentiveOutput(key, rf) {
|
|
@@ -7447,13 +7447,20 @@
|
|
|
7447
7447
|
argsValid(cfgOrRf) {
|
|
7448
7448
|
if (typeof cfgOrRf === 'function') {
|
|
7449
7449
|
tryRegisterCallback('inputsValid', () => cfgOrRf(new RenderCtx()));
|
|
7450
|
-
return new BlockModel(
|
|
7451
|
-
|
|
7452
|
-
|
|
7453
|
-
|
|
7450
|
+
return new BlockModel({
|
|
7451
|
+
...this.config,
|
|
7452
|
+
inputsValid: {
|
|
7453
|
+
__renderLambda: true,
|
|
7454
|
+
handle: 'inputsValid',
|
|
7455
|
+
},
|
|
7456
|
+
});
|
|
7457
|
+
}
|
|
7458
|
+
else {
|
|
7459
|
+
return new BlockModel({
|
|
7460
|
+
...this.config,
|
|
7461
|
+
inputsValid: cfgOrRf,
|
|
7462
|
+
});
|
|
7454
7463
|
}
|
|
7455
|
-
else
|
|
7456
|
-
return new BlockModel(this._renderingMode, this._initialArgs, this._initialUiState, this._outputs, cfgOrRf, this._sections, this._title, this._enrichmentTargets, this._featureFlags);
|
|
7457
7464
|
}
|
|
7458
7465
|
sections(arrOrCfgOrRf) {
|
|
7459
7466
|
if (Array.isArray(arrOrCfgOrRf)) {
|
|
@@ -7461,34 +7468,82 @@
|
|
|
7461
7468
|
}
|
|
7462
7469
|
else if (typeof arrOrCfgOrRf === 'function') {
|
|
7463
7470
|
tryRegisterCallback('sections', () => arrOrCfgOrRf(new RenderCtx()));
|
|
7464
|
-
return new BlockModel(
|
|
7471
|
+
return new BlockModel({
|
|
7472
|
+
...this.config,
|
|
7473
|
+
sections: {
|
|
7474
|
+
__renderLambda: true,
|
|
7475
|
+
handle: 'sections',
|
|
7476
|
+
},
|
|
7477
|
+
});
|
|
7478
|
+
}
|
|
7479
|
+
else {
|
|
7480
|
+
return new BlockModel({
|
|
7481
|
+
...this.config,
|
|
7482
|
+
sections: arrOrCfgOrRf,
|
|
7483
|
+
});
|
|
7465
7484
|
}
|
|
7466
|
-
else
|
|
7467
|
-
return new BlockModel(this._renderingMode, this._initialArgs, this._initialUiState, this._outputs, this._inputsValid, arrOrCfgOrRf, this._title, this._enrichmentTargets, this._featureFlags);
|
|
7468
7485
|
}
|
|
7469
7486
|
/** Sets a rendering function to derive block title, shown for the block in the left blocks-overview panel. */
|
|
7470
7487
|
title(rf) {
|
|
7471
7488
|
tryRegisterCallback('title', () => rf(new RenderCtx()));
|
|
7472
|
-
return new BlockModel(
|
|
7489
|
+
return new BlockModel({
|
|
7490
|
+
...this.config,
|
|
7491
|
+
title: {
|
|
7492
|
+
__renderLambda: true,
|
|
7493
|
+
handle: 'title',
|
|
7494
|
+
},
|
|
7495
|
+
});
|
|
7496
|
+
}
|
|
7497
|
+
subtitle(rf) {
|
|
7498
|
+
tryRegisterCallback('subtitle', () => rf(new RenderCtx()));
|
|
7499
|
+
return new BlockModel({
|
|
7500
|
+
...this.config,
|
|
7501
|
+
subtitle: {
|
|
7502
|
+
__renderLambda: true,
|
|
7503
|
+
handle: 'subtitle',
|
|
7504
|
+
},
|
|
7505
|
+
});
|
|
7506
|
+
}
|
|
7507
|
+
tags(rf) {
|
|
7508
|
+
tryRegisterCallback('tags', () => rf(new RenderCtx()));
|
|
7509
|
+
return new BlockModel({
|
|
7510
|
+
...this.config,
|
|
7511
|
+
tags: {
|
|
7512
|
+
__renderLambda: true,
|
|
7513
|
+
handle: 'tags',
|
|
7514
|
+
},
|
|
7515
|
+
});
|
|
7473
7516
|
}
|
|
7474
7517
|
/**
|
|
7475
7518
|
* Sets initial args for the block, this value must be specified.
|
|
7476
7519
|
* @deprecated use {@link withArgs}
|
|
7477
7520
|
* */
|
|
7478
7521
|
initialArgs(value) {
|
|
7479
|
-
return
|
|
7522
|
+
return this.withArgs(value);
|
|
7480
7523
|
}
|
|
7481
7524
|
/** Sets initial args for the block, this value must be specified. */
|
|
7482
|
-
withArgs(
|
|
7483
|
-
return new BlockModel(
|
|
7525
|
+
withArgs(initialArgs) {
|
|
7526
|
+
return new BlockModel({
|
|
7527
|
+
...this.config,
|
|
7528
|
+
initialArgs,
|
|
7529
|
+
});
|
|
7484
7530
|
}
|
|
7485
7531
|
/** Defines type and sets initial value for block UiState. */
|
|
7486
|
-
withUiState(
|
|
7487
|
-
return new BlockModel(
|
|
7532
|
+
withUiState(initialUiState) {
|
|
7533
|
+
return new BlockModel({
|
|
7534
|
+
...this.config,
|
|
7535
|
+
initialUiState,
|
|
7536
|
+
});
|
|
7488
7537
|
}
|
|
7489
7538
|
/** Sets or overrides feature flags for the block. */
|
|
7490
7539
|
withFeatureFlags(flags) {
|
|
7491
|
-
return new BlockModel(
|
|
7540
|
+
return new BlockModel({
|
|
7541
|
+
...this.config,
|
|
7542
|
+
featureFlags: {
|
|
7543
|
+
...this.config.featureFlags,
|
|
7544
|
+
...flags,
|
|
7545
|
+
},
|
|
7546
|
+
});
|
|
7492
7547
|
}
|
|
7493
7548
|
/**
|
|
7494
7549
|
* Defines how to derive list of upstream references this block is meant to enrich with its exports from block args.
|
|
@@ -7496,43 +7551,50 @@
|
|
|
7496
7551
|
*/
|
|
7497
7552
|
enriches(lambda) {
|
|
7498
7553
|
tryRegisterCallback('enrichmentTargets', lambda);
|
|
7499
|
-
return new BlockModel(
|
|
7554
|
+
return new BlockModel({
|
|
7555
|
+
...this.config,
|
|
7556
|
+
enrichmentTargets: {
|
|
7557
|
+
__renderLambda: true,
|
|
7558
|
+
handle: 'enrichmentTargets',
|
|
7559
|
+
},
|
|
7560
|
+
});
|
|
7500
7561
|
}
|
|
7501
7562
|
/** Renders all provided block settings into a pre-configured platforma API
|
|
7502
7563
|
* instance, that can be used in frontend to interact with block state, and
|
|
7503
7564
|
* other features provided by the platforma to the block. */
|
|
7504
|
-
done(apiVersion) {
|
|
7505
|
-
const requiresUIAPIVersion = apiVersion ?? 1;
|
|
7565
|
+
done(apiVersion = 1) {
|
|
7506
7566
|
return this.withFeatureFlags({
|
|
7507
|
-
...this.
|
|
7508
|
-
requiresUIAPIVersion,
|
|
7509
|
-
})
|
|
7567
|
+
...this.config.featureFlags,
|
|
7568
|
+
requiresUIAPIVersion: apiVersion,
|
|
7569
|
+
}).#done();
|
|
7510
7570
|
}
|
|
7511
|
-
|
|
7512
|
-
if (this.
|
|
7571
|
+
#done() {
|
|
7572
|
+
if (this.config.initialArgs === undefined)
|
|
7513
7573
|
throw new Error('Initial arguments not set.');
|
|
7514
7574
|
const config = {
|
|
7515
7575
|
v3: {
|
|
7516
7576
|
sdkVersion: PlatformaSDKVersion,
|
|
7517
|
-
renderingMode: this.
|
|
7518
|
-
initialArgs: this.
|
|
7519
|
-
initialUiState: this.
|
|
7520
|
-
inputsValid: this.
|
|
7521
|
-
sections: this.
|
|
7522
|
-
title: this.
|
|
7523
|
-
|
|
7524
|
-
|
|
7525
|
-
|
|
7577
|
+
renderingMode: this.config.renderingMode,
|
|
7578
|
+
initialArgs: this.config.initialArgs,
|
|
7579
|
+
initialUiState: this.config.initialUiState,
|
|
7580
|
+
inputsValid: this.config.inputsValid,
|
|
7581
|
+
sections: this.config.sections,
|
|
7582
|
+
title: this.config.title,
|
|
7583
|
+
subtitle: this.config.subtitle,
|
|
7584
|
+
tags: this.config.tags,
|
|
7585
|
+
outputs: this.config.outputs,
|
|
7586
|
+
enrichmentTargets: this.config.enrichmentTargets,
|
|
7587
|
+
featureFlags: this.config.featureFlags,
|
|
7526
7588
|
},
|
|
7527
7589
|
// fields below are added to allow previous desktop versions read generated configs
|
|
7528
7590
|
sdkVersion: PlatformaSDKVersion,
|
|
7529
|
-
renderingMode: this.
|
|
7530
|
-
initialArgs: this.
|
|
7531
|
-
inputsValid: downgradeCfgOrLambda(this.
|
|
7532
|
-
sections: downgradeCfgOrLambda(this.
|
|
7533
|
-
outputs: Object.fromEntries(Object.entries(this.
|
|
7591
|
+
renderingMode: this.config.renderingMode,
|
|
7592
|
+
initialArgs: this.config.initialArgs,
|
|
7593
|
+
inputsValid: downgradeCfgOrLambda(this.config.inputsValid),
|
|
7594
|
+
sections: downgradeCfgOrLambda(this.config.sections),
|
|
7595
|
+
outputs: Object.fromEntries(Object.entries(this.config.outputs).map(([key, value]) => [key, downgradeCfgOrLambda(value)])),
|
|
7534
7596
|
};
|
|
7535
|
-
globalThis.platformaApiVersion =
|
|
7597
|
+
globalThis.platformaApiVersion = this.config.featureFlags.requiresUIAPIVersion;
|
|
7536
7598
|
if (!isInUI())
|
|
7537
7599
|
// we are in the configuration rendering routine, not in actual UI
|
|
7538
7600
|
return { config };
|
|
@@ -7542,6 +7604,75 @@
|
|
|
7542
7604
|
}
|
|
7543
7605
|
}
|
|
7544
7606
|
|
|
7607
|
+
function getAllRelatedColumns(ctx, predicate) {
|
|
7608
|
+
// if current block doesn't produce own columns then use all columns from result pool
|
|
7609
|
+
const columns = new PColumnCollection();
|
|
7610
|
+
columns.addColumnProvider(ctx.resultPool);
|
|
7611
|
+
const allColumns = columns.getUniversalEntries(predicate, { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? [];
|
|
7612
|
+
const allAxes = new Map(allColumns
|
|
7613
|
+
.flatMap((column) => getNormalizedAxesList(column.spec.axesSpec))
|
|
7614
|
+
.map((axisSpec) => {
|
|
7615
|
+
const axisId = getAxisId(axisSpec);
|
|
7616
|
+
return [canonicalizeJson(axisId), axisSpec];
|
|
7617
|
+
}));
|
|
7618
|
+
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
7619
|
+
const extendedColumns = enrichCompatible(allAxes, allColumns);
|
|
7620
|
+
return extendedColumns;
|
|
7621
|
+
}
|
|
7622
|
+
function getRelatedColumns(ctx, { columns: rootColumns, predicate }) {
|
|
7623
|
+
// if current block has its own columns then take from result pool only compatible with them
|
|
7624
|
+
const columns = new PColumnCollection();
|
|
7625
|
+
columns.addColumnProvider(ctx.resultPool);
|
|
7626
|
+
columns.addColumns(rootColumns);
|
|
7627
|
+
// all possible axes from block columns
|
|
7628
|
+
const blockAxes = new Map();
|
|
7629
|
+
// axes from block columns and compatible result pool columns
|
|
7630
|
+
const allAxes = new Map();
|
|
7631
|
+
for (const c of rootColumns) {
|
|
7632
|
+
for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {
|
|
7633
|
+
const aid = getAxisId(spec);
|
|
7634
|
+
blockAxes.set(canonicalizeJson(aid), spec);
|
|
7635
|
+
allAxes.set(canonicalizeJson(aid), spec);
|
|
7636
|
+
}
|
|
7637
|
+
}
|
|
7638
|
+
// all linker columns always go to pFrame - even it's impossible to use some of them they all are hidden
|
|
7639
|
+
const linkerColumns = columns.getUniversalEntries((spec) => predicate(spec) && isLinkerColumn(spec)) ?? [];
|
|
7640
|
+
const availableWithLinkersAxes = getAvailableWithLinkersAxes(linkerColumns, blockAxes);
|
|
7641
|
+
// all possible axes from connected linkers
|
|
7642
|
+
for (const item of availableWithLinkersAxes) {
|
|
7643
|
+
blockAxes.set(...item);
|
|
7644
|
+
allAxes.set(...item);
|
|
7645
|
+
}
|
|
7646
|
+
const blockAxesArr = Array.from(blockAxes.values());
|
|
7647
|
+
// all compatible with block columns but without label columns
|
|
7648
|
+
let compatibleWithoutLabels = (columns.getUniversalEntries((spec) => predicate(spec) && spec.axesSpec.some((axisSpec) => {
|
|
7649
|
+
const axisId = getAxisId(axisSpec);
|
|
7650
|
+
return blockAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
7651
|
+
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => !isLabelColumn(column.spec));
|
|
7652
|
+
// extend axes set for label columns request
|
|
7653
|
+
for (const c of compatibleWithoutLabels) {
|
|
7654
|
+
for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {
|
|
7655
|
+
const aid = getAxisId(spec);
|
|
7656
|
+
allAxes.set(canonicalizeJson(aid), spec);
|
|
7657
|
+
}
|
|
7658
|
+
}
|
|
7659
|
+
const allAxesArr = Array.from(allAxes.values());
|
|
7660
|
+
// extend allowed columns - add columns thad doesn't have axes from block, but have all axes in 'allAxes' list (that means all axes from linkers or from 'hanging' of other selected columns)
|
|
7661
|
+
compatibleWithoutLabels = (columns.getUniversalEntries((spec) => predicate(spec) && spec.axesSpec.every((axisSpec) => {
|
|
7662
|
+
const axisId = getAxisId(axisSpec);
|
|
7663
|
+
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
7664
|
+
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => !isLabelColumn(column.spec));
|
|
7665
|
+
// label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool
|
|
7666
|
+
const compatibleLabels = (columns.getUniversalEntries((spec) => predicate(spec) && spec.axesSpec.some((axisSpec) => {
|
|
7667
|
+
const axisId = getAxisId(axisSpec);
|
|
7668
|
+
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
7669
|
+
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => isLabelColumn(column.spec));
|
|
7670
|
+
const compatible = [...compatibleWithoutLabels, ...compatibleLabels];
|
|
7671
|
+
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
7672
|
+
const extendedColumns = enrichCompatible(blockAxes, compatible);
|
|
7673
|
+
return extendedColumns;
|
|
7674
|
+
}
|
|
7675
|
+
|
|
7545
7676
|
/** Create id for column copy with added keys in axes domains */
|
|
7546
7677
|
const colId = (id, domains) => {
|
|
7547
7678
|
let wid = id.toString();
|
|
@@ -7678,70 +7809,9 @@
|
|
|
7678
7809
|
const suitableSpec = (spec) => !isHiddenFromUIColumn(spec) && !isHiddenFromGraphColumn(spec);
|
|
7679
7810
|
// if current block doesn't produce own columns then use all columns from result pool
|
|
7680
7811
|
if (!blockColumns) {
|
|
7681
|
-
|
|
7682
|
-
columns.addColumnProvider(ctx.resultPool);
|
|
7683
|
-
const allColumns = columns.getUniversalEntries(suitableSpec, { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? [];
|
|
7684
|
-
const allAxes = new Map(allColumns
|
|
7685
|
-
.flatMap((column) => getNormalizedAxesList(column.spec.axesSpec))
|
|
7686
|
-
.map((axisSpec) => {
|
|
7687
|
-
const axisId = getAxisId(axisSpec);
|
|
7688
|
-
return [canonicalizeJson(axisId), axisSpec];
|
|
7689
|
-
}));
|
|
7690
|
-
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
7691
|
-
const extendedColumns = enrichCompatible(allAxes, allColumns);
|
|
7692
|
-
return ctx.createPFrame(extendedColumns);
|
|
7693
|
-
}
|
|
7694
|
-
// if current block has its own columns then take from result pool only compatible with them
|
|
7695
|
-
const columns = new PColumnCollection();
|
|
7696
|
-
columns.addColumnProvider(ctx.resultPool);
|
|
7697
|
-
columns.addColumns(blockColumns);
|
|
7698
|
-
// all possible axes from block columns
|
|
7699
|
-
const blockAxes = new Map();
|
|
7700
|
-
// axes from block columns and compatible result pool columns
|
|
7701
|
-
const allAxes = new Map();
|
|
7702
|
-
for (const c of blockColumns) {
|
|
7703
|
-
for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {
|
|
7704
|
-
const aid = getAxisId(spec);
|
|
7705
|
-
blockAxes.set(canonicalizeJson(aid), spec);
|
|
7706
|
-
allAxes.set(canonicalizeJson(aid), spec);
|
|
7707
|
-
}
|
|
7708
|
-
}
|
|
7709
|
-
// all linker columns always go to pFrame - even it's impossible to use some of them they all are hidden
|
|
7710
|
-
const linkerColumns = columns.getUniversalEntries((spec) => suitableSpec(spec) && isLinkerColumn(spec)) ?? [];
|
|
7711
|
-
const availableWithLinkersAxes = getAvailableWithLinkersAxes(linkerColumns, blockAxes);
|
|
7712
|
-
// all possible axes from connected linkers
|
|
7713
|
-
for (const item of availableWithLinkersAxes) {
|
|
7714
|
-
blockAxes.set(...item);
|
|
7715
|
-
allAxes.set(...item);
|
|
7716
|
-
}
|
|
7717
|
-
const blockAxesArr = Array.from(blockAxes.values());
|
|
7718
|
-
// all compatible with block columns but without label columns
|
|
7719
|
-
let compatibleWithoutLabels = (columns.getUniversalEntries((spec) => suitableSpec(spec) && spec.axesSpec.some((axisSpec) => {
|
|
7720
|
-
const axisId = getAxisId(axisSpec);
|
|
7721
|
-
return blockAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
7722
|
-
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => !isLabelColumn(column.spec));
|
|
7723
|
-
// extend axes set for label columns request
|
|
7724
|
-
for (const c of compatibleWithoutLabels) {
|
|
7725
|
-
for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {
|
|
7726
|
-
const aid = getAxisId(spec);
|
|
7727
|
-
allAxes.set(canonicalizeJson(aid), spec);
|
|
7728
|
-
}
|
|
7812
|
+
return ctx.createPFrame(getAllRelatedColumns(ctx, suitableSpec));
|
|
7729
7813
|
}
|
|
7730
|
-
|
|
7731
|
-
// extend allowed columns - add columns thad doesn't have axes from block, but have all axes in 'allAxes' list (that means all axes from linkers or from 'hanging' of other selected columns)
|
|
7732
|
-
compatibleWithoutLabels = (columns.getUniversalEntries((spec) => suitableSpec(spec) && spec.axesSpec.every((axisSpec) => {
|
|
7733
|
-
const axisId = getAxisId(axisSpec);
|
|
7734
|
-
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
7735
|
-
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => !isLabelColumn(column.spec));
|
|
7736
|
-
// label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool
|
|
7737
|
-
const compatibleLabels = (columns.getUniversalEntries((spec) => suitableSpec(spec) && spec.axesSpec.some((axisSpec) => {
|
|
7738
|
-
const axisId = getAxisId(axisSpec);
|
|
7739
|
-
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
7740
|
-
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => isLabelColumn(column.spec));
|
|
7741
|
-
const compatible = [...compatibleWithoutLabels, ...compatibleLabels];
|
|
7742
|
-
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
7743
|
-
const extendedColumns = enrichCompatible(blockAxes, compatible);
|
|
7744
|
-
return ctx.createPFrame(extendedColumns);
|
|
7814
|
+
return ctx.createPFrame(getRelatedColumns(ctx, { columns: blockColumns, predicate: suitableSpec }));
|
|
7745
7815
|
}
|
|
7746
7816
|
|
|
7747
7817
|
function makeDefaultPTableParams() {
|
|
@@ -8083,7 +8153,7 @@
|
|
|
8083
8153
|
identity: 0.8,
|
|
8084
8154
|
sequenceType: 'aminoacid',
|
|
8085
8155
|
sequencesRef: [],
|
|
8086
|
-
similarityType: '
|
|
8156
|
+
similarityType: 'alignment-score',
|
|
8087
8157
|
coverageThreshold: 0.8, // default value matching MMseqs2 default
|
|
8088
8158
|
coverageMode: 0, // default to coverage of query and target
|
|
8089
8159
|
trimStart: 0, // default to no trimming from start
|