@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.
@@ -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.0 build /home/runner/work/clonotype-clustering/clonotype-clustering/model
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
  
9
9
  ./src/index.ts → dist, dist...
10
- created dist, dist in 3s
10
+ created dist, dist in 2.5s
11
11
  
12
12
  ./src/index.ts → dist...
13
- created dist in 3.4s
13
+ (!) Circular dependency
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
+ created dist in 3.2s
14
16
  Build completed successfully
@@ -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.0 lint /home/runner/work/clonotype-clustering/clonotype-clustering/model
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.0 type-check /home/runner/work/clonotype-clustering/clonotype-clustering/model
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
@@ -1,5 +1,11 @@
1
1
  # @platforma-open/milaboratories.clonotype-clustering.model
2
2
 
3
+ ## 2.14.1
4
+
5
+ ### Patch Changes
6
+
7
+ - fdec994: Use BLOSUM Alignment score by default
8
+
3
9
  ## 2.14.0
4
10
 
5
11
  ### Minor Changes
package/dist/bundle.js CHANGED
@@ -7373,7 +7373,7 @@
7373
7373
  }
7374
7374
  }
7375
7375
 
7376
- var version = "1.48.4";
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
- _renderingMode;
7397
- _initialArgs;
7398
- _initialUiState;
7399
- _outputs;
7400
- _inputsValid;
7401
- _sections;
7402
- _title;
7403
- _enrichmentTargets;
7404
- _featureFlags;
7405
- constructor(_renderingMode, _initialArgs, _initialUiState, _outputs, _inputsValid, _sections, _title, _enrichmentTargets, _featureFlags) {
7406
- this._renderingMode = _renderingMode;
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(renderingMode, undefined, {}, {}, getImmediate(true), getImmediate([]), undefined, undefined, { ...BlockModel.INITIAL_BLOCK_FEATURE_FLAGS });
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(this._renderingMode, this._initialArgs, this._initialUiState, {
7429
- ...this._outputs,
7430
- [key]: {
7431
- __renderLambda: true,
7432
- handle,
7433
- ...flags,
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
- }, this._inputsValid, this._sections, this._title, this._enrichmentTargets, this._featureFlags);
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(this._renderingMode, this._initialArgs, this._initialUiState, this._outputs, {
7451
- __renderLambda: true,
7452
- handle: 'inputsValid',
7453
- }, this._sections, this._title, this._enrichmentTargets, this._featureFlags);
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(this._renderingMode, this._initialArgs, this._initialUiState, this._outputs, this._inputsValid, { __renderLambda: true, handle: 'sections' }, this._title, this._enrichmentTargets, this._featureFlags);
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(this._renderingMode, this._initialArgs, this._initialUiState, this._outputs, this._inputsValid, this._sections, { __renderLambda: true, handle: 'title' }, this._enrichmentTargets, this._featureFlags);
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 new BlockModel(this._renderingMode, value, this._initialUiState, this._outputs, this._inputsValid, this._sections, this._title, this._enrichmentTargets, this._featureFlags);
7522
+ return this.withArgs(value);
7480
7523
  }
7481
7524
  /** Sets initial args for the block, this value must be specified. */
7482
- withArgs(initialValue) {
7483
- return new BlockModel(this._renderingMode, initialValue, this._initialUiState, this._outputs, this._inputsValid, this._sections, this._title, this._enrichmentTargets, this._featureFlags);
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(initialValue) {
7487
- return new BlockModel(this._renderingMode, this._initialArgs, initialValue, this._outputs, this._inputsValid, this._sections, this._title, this._enrichmentTargets, this._featureFlags);
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(this._renderingMode, this._initialArgs, this._initialUiState, this._outputs, this._inputsValid, this._sections, this._title, this._enrichmentTargets, { ...this._featureFlags, ...flags });
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(this._renderingMode, this._initialArgs, this._initialUiState, this._outputs, this._inputsValid, this._sections, this._title, { __renderLambda: true, handle: 'enrichmentTargets' }, this._featureFlags);
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._featureFlags,
7508
- requiresUIAPIVersion,
7509
- })._done(requiresUIAPIVersion);
7567
+ ...this.config.featureFlags,
7568
+ requiresUIAPIVersion: apiVersion,
7569
+ }).#done();
7510
7570
  }
7511
- _done(apiVersion) {
7512
- if (this._initialArgs === undefined)
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._renderingMode,
7518
- initialArgs: this._initialArgs,
7519
- initialUiState: this._initialUiState,
7520
- inputsValid: this._inputsValid,
7521
- sections: this._sections,
7522
- title: this._title,
7523
- outputs: this._outputs,
7524
- enrichmentTargets: this._enrichmentTargets,
7525
- featureFlags: this._featureFlags,
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._renderingMode,
7530
- initialArgs: this._initialArgs,
7531
- inputsValid: downgradeCfgOrLambda(this._inputsValid),
7532
- sections: downgradeCfgOrLambda(this._sections),
7533
- outputs: Object.fromEntries(Object.entries(this._outputs).map(([key, value]) => [key, downgradeCfgOrLambda(value)])),
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 = apiVersion;
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
- const columns = new PColumnCollection();
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
- const allAxesArr = Array.from(allAxes.values());
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: 'sequence-identity',
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