@platforma-open/milaboratories.repertoire-mutation-heatmap.block 1.0.0 → 1.1.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/block-pack/main.plj.gz +0 -0
- package/block-pack/manifest.json +1 -1
- package/block-pack/model.json +1 -1
- package/block-pack/published.json +1 -1
- package/block-pack/ui.tgz +0 -0
- package/dist/AGENTS.d.ts +186 -72
- package/dist/AGENTS.d.ts.map +1 -1
- package/dist/index.d.ts +186 -72
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +196 -71
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -21,14 +21,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
enumerable: true
|
|
22
22
|
}) : target, mod));
|
|
23
23
|
//#endregion
|
|
24
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
24
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/plugin_handle.js
|
|
25
25
|
const PLUGIN_OUTPUT_PREFIX = "plugin-output#";
|
|
26
26
|
/** Construct the output key for a plugin output in the block outputs map. */
|
|
27
27
|
function pluginOutputKey(handle, outputKey) {
|
|
28
28
|
return `${PLUGIN_OUTPUT_PREFIX}${handle}#${outputKey}`;
|
|
29
29
|
}
|
|
30
30
|
//#endregion
|
|
31
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
31
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/block_storage.js
|
|
32
32
|
/**
|
|
33
33
|
* Discriminator key for BlockStorage format detection.
|
|
34
34
|
* This unique hash-based key identifies data as BlockStorage vs legacy formats.
|
|
@@ -270,7 +270,7 @@ function getPluginData(rawStorage, handle) {
|
|
|
270
270
|
return pluginEntry.__data;
|
|
271
271
|
}
|
|
272
272
|
//#endregion
|
|
273
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
273
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/block_migrations.js
|
|
274
274
|
/** Create a DataVersioned wrapper with correct shape */
|
|
275
275
|
function makeVersionedData(version, data) {
|
|
276
276
|
return {
|
|
@@ -765,7 +765,7 @@ var DataModel = class DataModel {
|
|
|
765
765
|
}
|
|
766
766
|
};
|
|
767
767
|
//#endregion
|
|
768
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
768
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/internal.js
|
|
769
769
|
/** Utility code helping to identify whether the code is running in actual UI environment */
|
|
770
770
|
function isInUI() {
|
|
771
771
|
return typeof globalThis.getPlatforma !== "undefined" || typeof globalThis.platforma !== "undefined";
|
|
@@ -835,7 +835,7 @@ function registerFutureAwait(handle, onResolve) {
|
|
|
835
835
|
futureResolves.get(handle).push(onResolve);
|
|
836
836
|
}
|
|
837
837
|
//#endregion
|
|
838
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
838
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
|
|
839
839
|
/**
|
|
840
840
|
* All facade callback names as constants.
|
|
841
841
|
* These are the source of truth - the interface is derived from these.
|
|
@@ -870,7 +870,7 @@ function registerFacadeCallbacks(callbacks) {
|
|
|
870
870
|
for (const key of Object.values(BlockStorageFacadeCallbacks)) tryRegisterCallback(key, callbacks[key]);
|
|
871
871
|
}
|
|
872
872
|
//#endregion
|
|
873
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
873
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/future.js
|
|
874
874
|
var FutureRef = class FutureRef {
|
|
875
875
|
handle;
|
|
876
876
|
postProcess;
|
|
@@ -4443,16 +4443,18 @@ objectType({
|
|
|
4443
4443
|
content: stringType()
|
|
4444
4444
|
});
|
|
4445
4445
|
objectType({
|
|
4446
|
+
/** Included left border. */
|
|
4446
4447
|
from: numberType().min(0),
|
|
4448
|
+
/** Excluded right border. */
|
|
4447
4449
|
to: numberType().min(1)
|
|
4448
4450
|
});
|
|
4449
4451
|
//#endregion
|
|
4450
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
4452
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/util.js
|
|
4451
4453
|
function assertNever(x) {
|
|
4452
4454
|
throw new Error("Unexpected object: " + x);
|
|
4453
4455
|
}
|
|
4454
4456
|
//#endregion
|
|
4455
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
4457
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_info.js
|
|
4456
4458
|
/**
|
|
4457
4459
|
* Type guard function that checks if the given value is a valid DataInfo.
|
|
4458
4460
|
*
|
|
@@ -4643,7 +4645,7 @@ function entriesToDataInfo(dataInfoEntries) {
|
|
|
4643
4645
|
}
|
|
4644
4646
|
}
|
|
4645
4647
|
//#endregion
|
|
4646
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
4648
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/errors.js
|
|
4647
4649
|
var ServiceError = class extends Error {
|
|
4648
4650
|
name = "ServiceError";
|
|
4649
4651
|
};
|
|
@@ -4667,7 +4669,7 @@ function ensureError(value) {
|
|
|
4667
4669
|
return new Error(stringifyValue(value));
|
|
4668
4670
|
}
|
|
4669
4671
|
//#endregion
|
|
4670
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
4672
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/json.js
|
|
4671
4673
|
var import_canonicalize = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4672
4674
|
module.exports = function serialize(object) {
|
|
4673
4675
|
if (typeof object === "number" && isNaN(object)) throw new Error("NaN is not allowed");
|
|
@@ -4693,7 +4695,7 @@ function parseJson(value) {
|
|
|
4693
4695
|
return JSON.parse(value);
|
|
4694
4696
|
}
|
|
4695
4697
|
//#endregion
|
|
4696
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
4698
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js
|
|
4697
4699
|
function readMetadata(metadata, key) {
|
|
4698
4700
|
return metadata?.[key];
|
|
4699
4701
|
}
|
|
@@ -4985,7 +4987,7 @@ function matchAxisId(query, target) {
|
|
|
4985
4987
|
return query.name === target.name && matchDomain$1(query.domain, target.domain) && matchDomain$1(query.contextDomain, target.contextDomain);
|
|
4986
4988
|
}
|
|
4987
4989
|
//#endregion
|
|
4988
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
4990
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/query/utils.js
|
|
4989
4991
|
/**
|
|
4990
4992
|
* Recursively traverses a SpecQuery tree bottom-up, applying visitor callbacks.
|
|
4991
4993
|
*
|
|
@@ -5063,7 +5065,7 @@ function mapSpecQueryColumns(query, cb) {
|
|
|
5063
5065
|
return traverseQuerySpec(query, { column: cb });
|
|
5064
5066
|
}
|
|
5065
5067
|
//#endregion
|
|
5066
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5068
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_calculate.js
|
|
5067
5069
|
function mapPTableDef(def, cb) {
|
|
5068
5070
|
return {
|
|
5069
5071
|
...def,
|
|
@@ -5106,7 +5108,7 @@ function mapJoinEntry(entry, cb) {
|
|
|
5106
5108
|
}
|
|
5107
5109
|
}
|
|
5108
5110
|
//#endregion
|
|
5109
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5111
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/ids.js
|
|
5110
5112
|
/**
|
|
5111
5113
|
* Canonically serializes a {@link UniversalPColumnId} to a string.
|
|
5112
5114
|
* @param id - The column identifier to serialize
|
|
@@ -5116,7 +5118,7 @@ function stringifyColumnId(id) {
|
|
|
5116
5118
|
return (0, import_canonicalize.default)(id);
|
|
5117
5119
|
}
|
|
5118
5120
|
//#endregion
|
|
5119
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5121
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/anchored.js
|
|
5120
5122
|
function axisKey(axis) {
|
|
5121
5123
|
return (0, import_canonicalize.default)(getAxisId(axis));
|
|
5122
5124
|
}
|
|
@@ -5128,6 +5130,7 @@ function domainKey(key, value) {
|
|
|
5128
5130
|
* Maintains maps of known domain values and axes that can be referenced by anchors
|
|
5129
5131
|
*/
|
|
5130
5132
|
var AnchoredIdDeriver = class {
|
|
5133
|
+
anchors;
|
|
5131
5134
|
axes = /* @__PURE__ */ new Map();
|
|
5132
5135
|
domains = /* @__PURE__ */ new Map();
|
|
5133
5136
|
contextDomains = /* @__PURE__ */ new Map();
|
|
@@ -5361,7 +5364,7 @@ function isAnchorAxisRef(value) {
|
|
|
5361
5364
|
return typeof value === "object" && "anchor" in value;
|
|
5362
5365
|
}
|
|
5363
5366
|
//#endregion
|
|
5364
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5367
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/pool/spec.js
|
|
5365
5368
|
function isPColumnSpec(spec) {
|
|
5366
5369
|
return spec.kind === "PColumn";
|
|
5367
5370
|
}
|
|
@@ -5407,7 +5410,7 @@ function extractAllColumns(entry) {
|
|
|
5407
5410
|
return [...columns.values()];
|
|
5408
5411
|
}
|
|
5409
5412
|
//#endregion
|
|
5410
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5413
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/selectors.js
|
|
5411
5414
|
/**
|
|
5412
5415
|
* Determines if an axis ID matches an axis selector.
|
|
5413
5416
|
*
|
|
@@ -5488,7 +5491,7 @@ function legacyColumnSelectorsToPredicate(predicateOrSelectors) {
|
|
|
5488
5491
|
else return (spec) => isPColumnSpec(spec) && matchPColumn(spec, predicateOrSelectors);
|
|
5489
5492
|
}
|
|
5490
5493
|
//#endregion
|
|
5491
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5494
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/native_id.js
|
|
5492
5495
|
function deriveNativeId(spec) {
|
|
5493
5496
|
const result = {
|
|
5494
5497
|
kind: spec.kind,
|
|
@@ -5501,13 +5504,13 @@ function deriveNativeId(spec) {
|
|
|
5501
5504
|
}
|
|
5502
5505
|
Array.isArray;
|
|
5503
5506
|
//#endregion
|
|
5504
|
-
//#region ../node_modules/.pnpm/@milaboratories+helpers@1.14.
|
|
5507
|
+
//#region ../node_modules/.pnpm/@milaboratories+helpers@1.14.3/node_modules/@milaboratories/helpers/dist/error.js
|
|
5505
5508
|
function throwError(v) {
|
|
5506
5509
|
if (typeof v === "string") throw new Error(v);
|
|
5507
5510
|
else throw v;
|
|
5508
5511
|
}
|
|
5509
5512
|
//#endregion
|
|
5510
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5513
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js
|
|
5511
5514
|
var LinkerMap = class LinkerMap {
|
|
5512
5515
|
/** Graph of linkers connected by axes (single or grouped by parents) */
|
|
5513
5516
|
data;
|
|
@@ -5685,7 +5688,7 @@ var LinkerMap = class LinkerMap {
|
|
|
5685
5688
|
}
|
|
5686
5689
|
};
|
|
5687
5690
|
//#endregion
|
|
5688
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5691
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/flags/block_flags.js
|
|
5689
5692
|
/**
|
|
5690
5693
|
* Required PFrames version. Bump this in lockstep with the `@milaboratories/pframes-rs-*`
|
|
5691
5694
|
* version in `pnpm-workspace.yaml` so blocks built against the new SDK refuse to load on
|
|
@@ -5728,7 +5731,7 @@ function withEnrichments(ref, requireEnrichments = true) {
|
|
|
5728
5731
|
}
|
|
5729
5732
|
}
|
|
5730
5733
|
//#endregion
|
|
5731
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5734
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/value_or_error.js
|
|
5732
5735
|
function mapValueInVOE(voe, cb) {
|
|
5733
5736
|
return voe.ok ? {
|
|
5734
5737
|
ok: true,
|
|
@@ -5736,7 +5739,7 @@ function mapValueInVOE(voe, cb) {
|
|
|
5736
5739
|
} : voe;
|
|
5737
5740
|
}
|
|
5738
5741
|
//#endregion
|
|
5739
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5742
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/resource_types.js
|
|
5740
5743
|
/** Well-known resource type names used across the platform. */
|
|
5741
5744
|
const ResourceTypeName = {
|
|
5742
5745
|
StreamManager: "StreamManager",
|
|
@@ -5774,10 +5777,13 @@ const ResourceTypeName = {
|
|
|
5774
5777
|
WorkingDirectory: "WorkingDirectory",
|
|
5775
5778
|
UserProject: "UserProject",
|
|
5776
5779
|
Projects: "Projects",
|
|
5777
|
-
ClientRoot: "ClientRoot"
|
|
5780
|
+
ClientRoot: "ClientRoot",
|
|
5781
|
+
SharingOutbox: "SharingOutbox",
|
|
5782
|
+
SharingState: "SharingState",
|
|
5783
|
+
SharedEnvelope: "SharedEnvelope"
|
|
5778
5784
|
};
|
|
5779
5785
|
//#endregion
|
|
5780
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5786
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/services/service_types.js
|
|
5781
5787
|
const SERVICE_ID_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*$/;
|
|
5782
5788
|
const { service, isNodeService, isWasmService, isMainService, getServiceKind, getServiceModelMethods, getServiceUiMethods } = (() => {
|
|
5783
5789
|
const typeMap = /* @__PURE__ */ new Map();
|
|
@@ -5816,7 +5822,7 @@ const { service, isNodeService, isWasmService, isMainService, getServiceKind, ge
|
|
|
5816
5822
|
};
|
|
5817
5823
|
})();
|
|
5818
5824
|
//#endregion
|
|
5819
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5825
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/services/service_declarations.js
|
|
5820
5826
|
const Services = {
|
|
5821
5827
|
PFrameSpec: service()({
|
|
5822
5828
|
type: "wasm",
|
|
@@ -5888,7 +5894,7 @@ function resolveRequiredServices(flags) {
|
|
|
5888
5894
|
}
|
|
5889
5895
|
Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true]));
|
|
5890
5896
|
//#endregion
|
|
5891
|
-
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.
|
|
5897
|
+
//#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.46.4/node_modules/@milaboratories/pl-model-common/dist/services/service_injectors.js
|
|
5892
5898
|
function buildMethodMap(pick) {
|
|
5893
5899
|
const result = {};
|
|
5894
5900
|
for (const id of Object.values(Services)) result[id] = [...pick(id)];
|
|
@@ -5897,7 +5903,7 @@ function buildMethodMap(pick) {
|
|
|
5897
5903
|
buildMethodMap(getServiceUiMethods);
|
|
5898
5904
|
buildMethodMap(getServiceModelMethods);
|
|
5899
5905
|
//#endregion
|
|
5900
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
5906
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/accessor.js
|
|
5901
5907
|
function ifDef(value, cb) {
|
|
5902
5908
|
return value === void 0 ? void 0 : cb(value);
|
|
5903
5909
|
}
|
|
@@ -6148,11 +6154,11 @@ var TreeNodeAccessor = class TreeNodeAccessor {
|
|
|
6148
6154
|
}
|
|
6149
6155
|
};
|
|
6150
6156
|
//#endregion
|
|
6151
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
6157
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/internal.js
|
|
6152
6158
|
const StagingAccessorName = "staging";
|
|
6153
6159
|
const MainAccessorName = "main";
|
|
6154
6160
|
//#endregion
|
|
6155
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
6161
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
|
|
6156
6162
|
function filterDataInfoEntries(dataInfoEntries, axisFilters) {
|
|
6157
6163
|
const sortedFilters = [...axisFilters].sort((a, b) => b[0] - a[0]);
|
|
6158
6164
|
const { type } = dataInfoEntries;
|
|
@@ -6258,7 +6264,7 @@ function isNil(x) {
|
|
|
6258
6264
|
return x == null;
|
|
6259
6265
|
}
|
|
6260
6266
|
//#endregion
|
|
6261
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
6267
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
|
|
6262
6268
|
const DISTANCE_PENALTY = .001;
|
|
6263
6269
|
const LABEL_TYPE = "__LABEL__";
|
|
6264
6270
|
const LABEL_TYPE_FULL = "__LABEL__@1";
|
|
@@ -6524,7 +6530,7 @@ function minimizeTypeSet(typeSet, records, stats, forceTraceElements, forcedSet,
|
|
|
6524
6530
|
return result;
|
|
6525
6531
|
}
|
|
6526
6532
|
//#endregion
|
|
6527
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
6533
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/util/label.js
|
|
6528
6534
|
/** @deprecated Use deriveDistinctLabels */
|
|
6529
6535
|
function deriveLabels(values, getSpec, options = {}) {
|
|
6530
6536
|
return deriveDistinctLabels(values.map(getSpec), options).map((label, i) => ({
|
|
@@ -6533,7 +6539,7 @@ function deriveLabels(values, getSpec, options = {}) {
|
|
|
6533
6539
|
}));
|
|
6534
6540
|
}
|
|
6535
6541
|
//#endregion
|
|
6536
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
6542
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
|
|
6537
6543
|
const RT_RESOURCE_MAP = "PColumnData/ResourceMap";
|
|
6538
6544
|
const RT_RESOURCE_MAP_PARTITIONED = "PColumnData/Partitioned/ResourceMap";
|
|
6539
6545
|
const RT_JSON_PARTITIONED = "PColumnData/JsonPartitioned";
|
|
@@ -6831,7 +6837,7 @@ function allPColumnsReady(columns) {
|
|
|
6831
6837
|
return columns.every(isPColumnReady);
|
|
6832
6838
|
}
|
|
6833
6839
|
//#endregion
|
|
6834
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
6840
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
|
|
6835
6841
|
function isPColumnValues(value) {
|
|
6836
6842
|
if (!Array.isArray(value)) return false;
|
|
6837
6843
|
if (value.length === 0) return true;
|
|
@@ -7107,7 +7113,7 @@ var PColumnCollection = class {
|
|
|
7107
7113
|
}
|
|
7108
7114
|
};
|
|
7109
7115
|
//#endregion
|
|
7110
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7116
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/services/block_services.js
|
|
7111
7117
|
/**
|
|
7112
7118
|
* Services required by all V3 blocks by default.
|
|
7113
7119
|
* Edit this when a new service should be available to all blocks.
|
|
@@ -7122,7 +7128,7 @@ const BLOCK_SERVICE_FLAGS = {
|
|
|
7122
7128
|
};
|
|
7123
7129
|
resolveRequiredServices(BLOCK_SERVICE_FLAGS);
|
|
7124
7130
|
//#endregion
|
|
7125
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7131
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
|
|
7126
7132
|
/**
|
|
7127
7133
|
* Builds a ServiceProxy from a ServiceDispatch.
|
|
7128
7134
|
* Each service method call is forwarded to dispatch.callServiceMethod.
|
|
@@ -7131,7 +7137,7 @@ function createServiceProxy(dispatch) {
|
|
|
7131
7137
|
return ((serviceId) => Object.freeze(Object.fromEntries(dispatch.getServiceMethods(serviceId).map((method) => [method, (...args) => dispatch.callServiceMethod(serviceId, method, ...args)]))));
|
|
7132
7138
|
}
|
|
7133
7139
|
//#endregion
|
|
7134
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7140
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/services/get_services.js
|
|
7135
7141
|
const cachedServices = /* @__PURE__ */ new WeakMap();
|
|
7136
7142
|
function getService(name) {
|
|
7137
7143
|
const ctx = getCfgRenderCtx();
|
|
@@ -7145,7 +7151,7 @@ function getService(name) {
|
|
|
7145
7151
|
})();
|
|
7146
7152
|
}
|
|
7147
7153
|
//#endregion
|
|
7148
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7154
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
|
|
7149
7155
|
function patchInSetFilters(filters) {
|
|
7150
7156
|
const inSetToOrEqual = (predicate) => {
|
|
7151
7157
|
if (predicate.operator !== "InSet") return predicate;
|
|
@@ -7183,7 +7189,7 @@ function patchInSetFilters(filters) {
|
|
|
7183
7189
|
return filters.map((filter) => mapFilter(filter, inSetToOrEqual));
|
|
7184
7190
|
}
|
|
7185
7191
|
//#endregion
|
|
7186
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7192
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/render/api.js
|
|
7187
7193
|
/**
|
|
7188
7194
|
* Helper function to match domain objects
|
|
7189
7195
|
* @param query Optional domain to match against
|
|
@@ -7637,27 +7643,27 @@ var PluginRenderCtx = class extends RenderCtxBase {
|
|
|
7637
7643
|
}
|
|
7638
7644
|
};
|
|
7639
7645
|
//#endregion
|
|
7640
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7641
|
-
const PlatformaSDKVersion = "1.79.
|
|
7646
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/version.js
|
|
7647
|
+
const PlatformaSDKVersion = "1.79.27";
|
|
7642
7648
|
//#endregion
|
|
7643
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7649
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/bconfig/types.js
|
|
7644
7650
|
function isConfigLambda(cfgOrFh) {
|
|
7645
7651
|
return cfgOrFh.__renderLambda === true;
|
|
7646
7652
|
}
|
|
7647
7653
|
//#endregion
|
|
7648
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7654
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
|
|
7649
7655
|
function downgradeCfgOrLambda(data) {
|
|
7650
7656
|
if (data === void 0) return void 0;
|
|
7651
7657
|
if (isConfigLambda(data)) return data.handle;
|
|
7652
7658
|
return data;
|
|
7653
7659
|
}
|
|
7654
7660
|
//#endregion
|
|
7655
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7661
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/plugin_model.js
|
|
7656
7662
|
/** Internal plugin↔block handshake. `Symbol.for` (not `Symbol`) so it stays
|
|
7657
7663
|
* identical across multiple `@platforma-sdk/model` copies in one process. */
|
|
7658
7664
|
const CREATE_PLUGIN_MODEL = Symbol.for("@platforma-sdk/model:createPluginModel");
|
|
7659
7665
|
//#endregion
|
|
7660
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7666
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
|
|
7661
7667
|
/**
|
|
7662
7668
|
* BlockStorage Callback Implementations - wired to facade callbacks in BlockModelV3.done().
|
|
7663
7669
|
*
|
|
@@ -7834,7 +7840,7 @@ function derivePrerunArgsFromStorage(storageJson, argsFunction, prerunArgsFuncti
|
|
|
7834
7840
|
}
|
|
7835
7841
|
}
|
|
7836
7842
|
//#endregion
|
|
7837
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
7843
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/block_model.js
|
|
7838
7844
|
/**
|
|
7839
7845
|
* Merges two feature flag objects with type-aware logic:
|
|
7840
7846
|
* - `supports*` (boolean): OR — `true` if either side is `true`
|
|
@@ -8146,7 +8152,7 @@ var BlockModelV3 = class BlockModelV3 {
|
|
|
8146
8152
|
}
|
|
8147
8153
|
};
|
|
8148
8154
|
//#endregion
|
|
8149
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
8155
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/pframe_utils/axes.js
|
|
8150
8156
|
/** Create id for column copy with added keys in axes domains */
|
|
8151
8157
|
const colId = (id, domains, contextDomains) => {
|
|
8152
8158
|
let wid = id.toString();
|
|
@@ -8252,7 +8258,7 @@ function getAdditionalColumnsForColumn(blockAxes, column) {
|
|
|
8252
8258
|
})];
|
|
8253
8259
|
}
|
|
8254
8260
|
//#endregion
|
|
8255
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
8261
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/columns/column_snapshot_provider.js
|
|
8256
8262
|
/**
|
|
8257
8263
|
* Simple provider wrapping an array of PColumns.
|
|
8258
8264
|
* Always complete, data status always 'ready'.
|
|
@@ -8380,7 +8386,7 @@ function toColumnSnapshotProvider(source) {
|
|
|
8380
8386
|
throw new Error("Unknown ColumnSource type");
|
|
8381
8387
|
}
|
|
8382
8388
|
//#endregion
|
|
8383
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
8389
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/columns/column_selector.js
|
|
8384
8390
|
function normalizeStringMatchers(input) {
|
|
8385
8391
|
if (typeof input === "string") return [{
|
|
8386
8392
|
type: "regex",
|
|
@@ -8424,7 +8430,7 @@ function convertColumnSelectorToMultiColumnSelector(input) {
|
|
|
8424
8430
|
return (Array.isArray(input) ? input : [input]).map(convertRelaxedColumnSelectorToMultiColumnSelector);
|
|
8425
8431
|
}
|
|
8426
8432
|
//#endregion
|
|
8427
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
8433
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/columns/column_collection_builder.js
|
|
8428
8434
|
/**
|
|
8429
8435
|
* Mutable builder that accumulates column sources, then produces
|
|
8430
8436
|
* a ColumnCollection (plain) or AnchoredColumnCollection (with anchors).
|
|
@@ -8655,7 +8661,7 @@ function matchingModeToConstraints(mode) {
|
|
|
8655
8661
|
}
|
|
8656
8662
|
}
|
|
8657
8663
|
//#endregion
|
|
8658
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
8664
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/columns/ctx_column_sources.js
|
|
8659
8665
|
/**
|
|
8660
8666
|
* Collect ColumnSnapshotProviders from `outputs`, `prerun`, and
|
|
8661
8667
|
* `resultPool` in that order. Dedup keeps the first occurrence per
|
|
@@ -8729,7 +8735,7 @@ function walkTree(node, out) {
|
|
|
8729
8735
|
}
|
|
8730
8736
|
}
|
|
8731
8737
|
//#endregion
|
|
8732
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
8738
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js
|
|
8733
8739
|
function getAllRelatedColumns(ctx, predicate) {
|
|
8734
8740
|
const columns = new PColumnCollection();
|
|
8735
8741
|
columns.addColumnProvider(ctx.resultPool);
|
|
@@ -8808,7 +8814,7 @@ function discoverIntegrableColumnIds(ctx, rootColumns) {
|
|
|
8808
8814
|
}
|
|
8809
8815
|
}
|
|
8810
8816
|
//#endregion
|
|
8811
|
-
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.
|
|
8817
|
+
//#region ../node_modules/.pnpm/@platforma-sdk+model@1.79.27/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
|
|
8812
8818
|
function isHiddenFromGraphColumn(column) {
|
|
8813
8819
|
return !!readAnnotationJson(column, Annotation.HideDataFromGraphs);
|
|
8814
8820
|
}
|
|
@@ -8892,6 +8898,7 @@ const STATE_MATRIX = "pl7.app/repertoire/stateMatrix";
|
|
|
8892
8898
|
const VARIANT_KEY_AXIS = "pl7.app/variantKey";
|
|
8893
8899
|
const KNOWN_VARIANT_KEY_AXIS = "pl7.app/knownVariantKey";
|
|
8894
8900
|
const SAMPLE_ID_AXIS = "pl7.app/sampleId";
|
|
8901
|
+
const NO_DATASET_LABEL = "No dataset selected";
|
|
8895
8902
|
/** Strip empty bounds / empty selection; lex-sort samples for a stable cache key. */
|
|
8896
8903
|
function canonicalizeFilter(f) {
|
|
8897
8904
|
const out = { membership: f.membership ?? "all" };
|
|
@@ -8905,6 +8912,8 @@ const dataModel = new DataModelBuilder().from("v1").init(() => ({
|
|
|
8905
8912
|
valueMode: "abundance",
|
|
8906
8913
|
normalize: true,
|
|
8907
8914
|
filter: { membership: "all" },
|
|
8915
|
+
roundFrequencyRefs: [],
|
|
8916
|
+
compositionEpsilon: 1e-6,
|
|
8908
8917
|
stateHeatmapState: {
|
|
8909
8918
|
title: "Deep Mutational Scanning",
|
|
8910
8919
|
template: "heatmap",
|
|
@@ -8930,39 +8939,136 @@ const dataModel = new DataModelBuilder().from("v1").init(() => ({
|
|
|
8930
8939
|
hideAxisLabels: false,
|
|
8931
8940
|
cellSize: 20
|
|
8932
8941
|
} }
|
|
8942
|
+
},
|
|
8943
|
+
compositionHeatmapState: {
|
|
8944
|
+
title: "Enrichment Analysis",
|
|
8945
|
+
template: "heatmap",
|
|
8946
|
+
currentTab: null,
|
|
8947
|
+
layersSettings: { heatmap: {
|
|
8948
|
+
normalizationDirection: null,
|
|
8949
|
+
transform: null
|
|
8950
|
+
} },
|
|
8951
|
+
axesSettings: { axisY: {
|
|
8952
|
+
hideAxisLabels: false,
|
|
8953
|
+
cellSize: 20
|
|
8954
|
+
} }
|
|
8933
8955
|
}
|
|
8934
8956
|
}));
|
|
8935
8957
|
const platforma$1 = BlockModelV3.create(dataModel).args((data) => {
|
|
8936
8958
|
if (data.stateMatrixRef === void 0) throw new Error("Select a state-matrix column to render");
|
|
8937
|
-
if (data.
|
|
8938
|
-
if (data.
|
|
8959
|
+
if (data.selectedParentId === void 0) throw new Error("Select a parent");
|
|
8960
|
+
if (data.abundanceRef === void 0) throw new Error("Select an abundance column");
|
|
8939
8961
|
return {
|
|
8940
8962
|
stateMatrixRef: data.stateMatrixRef,
|
|
8963
|
+
selectedParentId: data.selectedParentId,
|
|
8941
8964
|
abundanceRef: data.abundanceRef,
|
|
8942
|
-
propertyRef:
|
|
8965
|
+
propertyRef: void 0,
|
|
8943
8966
|
knownAbundanceRef: data.knownAbundanceRef,
|
|
8944
8967
|
level: data.level,
|
|
8945
|
-
valueMode:
|
|
8946
|
-
normalize: data.
|
|
8947
|
-
filter: canonicalizeFilter(data.filter)
|
|
8968
|
+
valueMode: "abundance",
|
|
8969
|
+
normalize: data.normalize,
|
|
8970
|
+
filter: canonicalizeFilter(data.filter),
|
|
8971
|
+
roundFrequencyRefs: data.roundFrequencyRefs ?? [],
|
|
8972
|
+
compositionEpsilon: data.compositionEpsilon ?? 1e-6
|
|
8948
8973
|
};
|
|
8949
|
-
}).output("stateMatrixOptions", (ctx) =>
|
|
8950
|
-
|
|
8951
|
-
|
|
8952
|
-
|
|
8953
|
-
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
8958
|
-
|
|
8974
|
+
}).output("stateMatrixOptions", (ctx) => {
|
|
8975
|
+
const options = ctx.resultPool.getOptions([{ name: STATE_MATRIX }], { label: { includeNativeLabel: false } });
|
|
8976
|
+
const labelCounts = /* @__PURE__ */ new Map();
|
|
8977
|
+
for (const o of options) labelCounts.set(o.label, (labelCounts.get(o.label) ?? 0) + 1);
|
|
8978
|
+
return options.map((o) => {
|
|
8979
|
+
if ((labelCounts.get(o.label) ?? 0) <= 1) return o;
|
|
8980
|
+
const alphabet = ctx.resultPool.getPColumnSpecByRef(o.ref)?.axesSpec.find((a) => a.domain?.["pl7.app/alphabet"])?.domain?.["pl7.app/alphabet"];
|
|
8981
|
+
const suffix = alphabet === "aminoacid" ? " (aa)" : alphabet === "nucleotide" ? " (nt)" : "";
|
|
8982
|
+
return {
|
|
8983
|
+
...o,
|
|
8984
|
+
label: o.label + suffix
|
|
8985
|
+
};
|
|
8986
|
+
});
|
|
8987
|
+
}).output("abundanceOptions", (ctx) => {
|
|
8988
|
+
const { stateMatrixRef } = ctx.data;
|
|
8989
|
+
if (stateMatrixRef === void 0) return void 0;
|
|
8990
|
+
const stateSpec = ctx.resultPool.getPColumnSpecByRef(stateMatrixRef);
|
|
8991
|
+
if (!stateSpec) return void 0;
|
|
8992
|
+
const smVariantKey = stateSpec.axesSpec.find((a) => a.name === VARIANT_KEY_AXIS);
|
|
8993
|
+
if (!smVariantKey) return void 0;
|
|
8994
|
+
const runId = smVariantKey.domain?.["pl7.app/repertoire/extractionRunId"];
|
|
8995
|
+
const alphabet = smVariantKey.domain?.["pl7.app/alphabet"];
|
|
8996
|
+
return ctx.resultPool.getOptions((spec) => {
|
|
8997
|
+
if (spec.kind !== "PColumn") return false;
|
|
8998
|
+
const s = spec;
|
|
8999
|
+
if (s.annotations?.["pl7.app/isAbundance"] !== "true") return false;
|
|
9000
|
+
if (s.axesSpec.length !== 2) return false;
|
|
9001
|
+
const vk = s.axesSpec.find((a) => a.name === VARIANT_KEY_AXIS);
|
|
9002
|
+
if (!vk || !s.axesSpec.some((a) => a.name === SAMPLE_ID_AXIS)) return false;
|
|
9003
|
+
return vk.domain?.["pl7.app/repertoire/extractionRunId"] === runId && vk.domain?.["pl7.app/alphabet"] === alphabet;
|
|
9004
|
+
}, { label: { includeNativeLabel: true } });
|
|
9005
|
+
}).output("propertyOptions", (ctx) => {
|
|
9006
|
+
const stateMatrixRef = ctx.data.stateMatrixRef;
|
|
9007
|
+
if (stateMatrixRef === void 0) return void 0;
|
|
9008
|
+
const stateSpec = ctx.resultPool.getPColumnSpecByRef(stateMatrixRef);
|
|
9009
|
+
if (!stateSpec) return void 0;
|
|
9010
|
+
const anchors = { main: stateSpec };
|
|
9011
|
+
const abundanceRef = ctx.data.abundanceRef;
|
|
9012
|
+
const abundanceSpec = abundanceRef ? ctx.resultPool.getPColumnSpecByRef(abundanceRef) : void 0;
|
|
9013
|
+
if (abundanceSpec) anchors.freqAnchor = abundanceSpec;
|
|
9014
|
+
const sourceColumns = ctx.resultPool.selectColumns((spec) => spec.valueType !== "File" && !(spec.annotations?.["pl7.app/isLinkerColumn"] === "true" && spec.axesSpec.length > 2));
|
|
9015
|
+
const collection = new ColumnCollectionBuilder(ctx.getService("pframeSpec")).addSource(sourceColumns).build({ anchors });
|
|
9016
|
+
if (!collection) return void 0;
|
|
9017
|
+
const numeric = /* @__PURE__ */ new Set([
|
|
9018
|
+
"Int",
|
|
9019
|
+
"Long",
|
|
9020
|
+
"Float",
|
|
9021
|
+
"Double"
|
|
9022
|
+
]);
|
|
9023
|
+
const seen = /* @__PURE__ */ new Set();
|
|
9024
|
+
const options = [];
|
|
9025
|
+
for (const m of collection.findColumns({
|
|
9026
|
+
mode: "enrichment",
|
|
9027
|
+
maxHops: 0
|
|
9028
|
+
})) {
|
|
9029
|
+
if (!numeric.has(m.column.spec.valueType)) continue;
|
|
9030
|
+
const dedupKey = m.column.spec.name + "|" + JSON.stringify(m.column.spec.domain ?? {});
|
|
9031
|
+
if (seen.has(dedupKey)) continue;
|
|
9032
|
+
seen.add(dedupKey);
|
|
9033
|
+
options.push({
|
|
9034
|
+
label: m.column.spec.annotations?.["pl7.app/label"] ?? m.column.id,
|
|
9035
|
+
value: m.column.id
|
|
9036
|
+
});
|
|
9037
|
+
}
|
|
9038
|
+
return options;
|
|
9039
|
+
}).output("roundFrequencyOptions", (ctx) => {
|
|
9040
|
+
const abundanceRef = ctx.data.abundanceRef;
|
|
9041
|
+
if (abundanceRef === void 0) return void 0;
|
|
9042
|
+
const anchorSpec = ctx.resultPool.getPColumnSpecByRef(abundanceRef);
|
|
9043
|
+
if (!anchorSpec) return void 0;
|
|
9044
|
+
const sourceColumns = ctx.resultPool.selectColumns((spec) => spec.valueType !== "File" && !(spec.annotations?.["pl7.app/isLinkerColumn"] === "true" && spec.axesSpec.length > 2));
|
|
9045
|
+
const collection = new ColumnCollectionBuilder(ctx.getService("pframeSpec")).addSource(sourceColumns).build({ anchors: { freqAnchor: anchorSpec } });
|
|
9046
|
+
if (!collection) return void 0;
|
|
9047
|
+
return collection.findColumns({
|
|
9048
|
+
include: { name: "pl7.app/frequency" },
|
|
9049
|
+
mode: "enrichment",
|
|
9050
|
+
maxHops: 0
|
|
9051
|
+
}).map((m) => ({
|
|
9052
|
+
label: m.column.spec.annotations?.["pl7.app/label"] ?? m.column.id,
|
|
9053
|
+
value: m.column.id
|
|
9054
|
+
}));
|
|
8959
9055
|
}).output("knownAbundanceOptions", (ctx) => ctx.resultPool.getOptions([{
|
|
8960
9056
|
axes: [{ name: SAMPLE_ID_AXIS }, { name: KNOWN_VARIANT_KEY_AXIS }],
|
|
8961
9057
|
annotations: {
|
|
8962
9058
|
"pl7.app/isAbundance": "true",
|
|
8963
9059
|
"pl7.app/abundance/aggregated": "true"
|
|
8964
9060
|
}
|
|
8965
|
-
}], { label: { includeNativeLabel: true } })).output("stateMatrixSpec", (ctx) => ctx.data.stateMatrixRef ? ctx.resultPool.getPColumnSpecByRef(ctx.data.stateMatrixRef) : void 0).output("
|
|
9061
|
+
}], { label: { includeNativeLabel: true } })).output("stateMatrixSpec", (ctx) => ctx.data.stateMatrixRef ? ctx.resultPool.getPColumnSpecByRef(ctx.data.stateMatrixRef) : void 0).output("stateMatrixPf", (ctx) => {
|
|
9062
|
+
const { stateMatrixRef } = ctx.data;
|
|
9063
|
+
if (stateMatrixRef === void 0) return void 0;
|
|
9064
|
+
const col = ctx.resultPool.getPColumnByRef(stateMatrixRef);
|
|
9065
|
+
if (col === void 0) return void 0;
|
|
9066
|
+
return ctx.createPFrame([col]);
|
|
9067
|
+
}).output("stateMatrixColId", (ctx) => {
|
|
9068
|
+
const { stateMatrixRef } = ctx.data;
|
|
9069
|
+
if (stateMatrixRef === void 0) return void 0;
|
|
9070
|
+
return ctx.resultPool.getPColumnByRef(stateMatrixRef)?.id;
|
|
9071
|
+
}).output("sampleLabelPframe", (ctx) => {
|
|
8966
9072
|
const { abundanceRef } = ctx.data;
|
|
8967
9073
|
if (abundanceRef === void 0) return void 0;
|
|
8968
9074
|
const cols = ctx.resultPool.getAnchoredPColumns({ main: abundanceRef }, [{
|
|
@@ -8998,6 +9104,20 @@ const platforma$1 = BlockModelV3.create(dataModel).args((data) => {
|
|
|
8998
9104
|
} catch {
|
|
8999
9105
|
return;
|
|
9000
9106
|
}
|
|
9107
|
+
}).outputWithStatus("compositionHeatmapPf", (ctx) => {
|
|
9108
|
+
try {
|
|
9109
|
+
const pCols = ctx.outputs?.resolve("compositionHeatmapPf")?.getPColumns();
|
|
9110
|
+
if (pCols === void 0) return void 0;
|
|
9111
|
+
return createPFrameForGraphs(ctx, pCols);
|
|
9112
|
+
} catch {
|
|
9113
|
+
return;
|
|
9114
|
+
}
|
|
9115
|
+
}).output("compositionHeatmapPCols", (ctx) => {
|
|
9116
|
+
try {
|
|
9117
|
+
return ctx.outputs?.resolve("compositionHeatmapPf")?.getPColumns();
|
|
9118
|
+
} catch {
|
|
9119
|
+
return;
|
|
9120
|
+
}
|
|
9001
9121
|
}).outputWithStatus("knownHeatmapPf", (ctx) => {
|
|
9002
9122
|
const { knownAbundanceRef } = ctx.data;
|
|
9003
9123
|
if (knownAbundanceRef === void 0) return void 0;
|
|
@@ -9040,12 +9160,17 @@ const platforma$1 = BlockModelV3.create(dataModel).args((data) => {
|
|
|
9040
9160
|
} catch {
|
|
9041
9161
|
return;
|
|
9042
9162
|
}
|
|
9043
|
-
}).output("isRunning", (ctx) => ctx.outputs?.getIsReadyOrError() === false).title(() => "Deep Mutational Scanning").sections((ctx) => {
|
|
9163
|
+
}).output("isRunning", (ctx) => ctx.outputs?.getIsReadyOrError() === false).title(() => "Deep Mutational Scanning").subtitle((ctx) => ctx.data.customBlockLabel || ctx.data.defaultBlockLabel || NO_DATASET_LABEL).sections((ctx) => {
|
|
9044
9164
|
const sections = [{
|
|
9045
9165
|
type: "link",
|
|
9046
9166
|
href: "/",
|
|
9047
9167
|
label: "Mutation Heatmap"
|
|
9048
9168
|
}];
|
|
9169
|
+
if (ctx.data.roundFrequencyRefs.length >= 2) sections.push({
|
|
9170
|
+
type: "link",
|
|
9171
|
+
href: "/composition",
|
|
9172
|
+
label: "Enrichment Analysis"
|
|
9173
|
+
});
|
|
9049
9174
|
if (ctx.data.knownAbundanceRef !== void 0) sections.push({
|
|
9050
9175
|
type: "link",
|
|
9051
9176
|
href: "/known-heatmap",
|