@datagrok-libraries/bio 5.42.2 → 5.42.3
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/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
10
10
|
"friendlyName": "Datagrok bio library",
|
|
11
|
-
"version": "5.42.
|
|
11
|
+
"version": "5.42.3",
|
|
12
12
|
"description": "Bio utilities, types supporting Macromolecule, Molecule3D data",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@datagrok-libraries/gridext": "^1.3.71",
|
|
@@ -8,10 +8,10 @@ type MonomerPlacerProps = {
|
|
|
8
8
|
monomerCharWidth: number;
|
|
9
9
|
separatorWidth: number;
|
|
10
10
|
monomerToShort: MonomerToShortFunc;
|
|
11
|
-
monomerLengthLimit: number;
|
|
12
11
|
};
|
|
13
12
|
export declare function hitBounds(bounds: number[], x: number): number | null;
|
|
14
13
|
export declare class MonomerPlacer extends CellRendererBackBase<string> {
|
|
14
|
+
monomerLengthLimit: number;
|
|
15
15
|
private readonly propsProvider;
|
|
16
16
|
private colWidth;
|
|
17
17
|
private _monomerLengthList;
|
|
@@ -19,8 +19,6 @@ export declare class MonomerPlacer extends CellRendererBackBase<string> {
|
|
|
19
19
|
props: MonomerPlacerProps;
|
|
20
20
|
private _processedRows;
|
|
21
21
|
private _processedMaxVisibleSeqLength;
|
|
22
|
-
private _updated;
|
|
23
|
-
get updated(): boolean;
|
|
24
22
|
_monomerLengthMap: {
|
|
25
23
|
[key: string]: TextMetrics;
|
|
26
24
|
};
|
|
@@ -28,7 +26,7 @@ export declare class MonomerPlacer extends CellRendererBackBase<string> {
|
|
|
28
26
|
[key: string]: HTMLElement;
|
|
29
27
|
};
|
|
30
28
|
/** View is required to subscribe and handle for data frame changes */
|
|
31
|
-
constructor(gridCol: DG.GridColumn | null, tableCol: DG.Column<string>, logger: ILogger, propsProvider: () => MonomerPlacerProps);
|
|
29
|
+
constructor(gridCol: DG.GridColumn | null, tableCol: DG.Column<string>, logger: ILogger, monomerLengthLimit: number, propsProvider: () => MonomerPlacerProps);
|
|
32
30
|
protected reset(): void;
|
|
33
31
|
/** Returns monomers lengths of the {@link rowIdx} and cumulative sums for borders, monomer places */
|
|
34
32
|
getCellMonomerLengths(rowIdx: number, newWidth: number): [number[], number[]];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-renderer-monomer-placer.d.ts","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IACjD,cAAc,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cell-renderer-monomer-placer.d.ts","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IACjD,cAAc,EAAE,kBAAkB,CAAA;CACnC,CAAC;AAEF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoBpE;AAED,qBAAa,aAAc,SAAQ,oBAAoB,CAAC,MAAM,CAAC;IAkBpD,kBAAkB,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAlBhC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,kBAAkB,CAA2B;IAGrD,OAAO,CAAC,cAAc,CAAK;IACpB,KAAK,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,6BAA6B,CAAa;IAE3C,iBAAiB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAM;IACvD,oBAAoB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAM;IAEjE,sEAAsE;gBAEpE,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,EAC7B,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC3B,MAAM,EAAE,OAAO,EACR,kBAAkB,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,kBAAkB;cAsBvC,KAAK,IAAI,IAAI;IAQhC,qGAAqG;IAC9F,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IAepF,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,8BAA8B;IAmDtC,yCAAyC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASpE,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,IAAI,OAAO;CAGxB"}
|
|
@@ -24,17 +24,16 @@ export function hitBounds(bounds, x) {
|
|
|
24
24
|
return null;
|
|
25
25
|
}
|
|
26
26
|
export class MonomerPlacer extends CellRendererBackBase {
|
|
27
|
-
get updated() { return this._updated; }
|
|
28
27
|
/** View is required to subscribe and handle for data frame changes */
|
|
29
|
-
constructor(gridCol, tableCol, logger, propsProvider) {
|
|
28
|
+
constructor(gridCol, tableCol, logger, monomerLengthLimit, propsProvider) {
|
|
30
29
|
super(gridCol, tableCol, logger);
|
|
30
|
+
this.monomerLengthLimit = monomerLengthLimit;
|
|
31
31
|
this.propsProvider = propsProvider;
|
|
32
32
|
this.colWidth = 0;
|
|
33
33
|
this._monomerLengthList = null;
|
|
34
34
|
// width of separator symbol
|
|
35
35
|
this.separatorWidth = 5;
|
|
36
36
|
this._processedMaxVisibleSeqLength = 0;
|
|
37
|
-
this._updated = false;
|
|
38
37
|
this._monomerLengthMap = {}; // caches the lengths to save time on g.measureText
|
|
39
38
|
this._monomerStructureMap = {}; // caches the atomic structures of monomers
|
|
40
39
|
this.props = this.propsProvider();
|
|
@@ -77,9 +76,10 @@ export class MonomerPlacer extends CellRendererBackBase {
|
|
|
77
76
|
return [res, resSum];
|
|
78
77
|
}
|
|
79
78
|
getCellMonomerLengthsForSeq(rowIdx) {
|
|
79
|
+
const logPrefix = `${this.toLog()}.getCellMonomerLengthsForSeqMsa()`;
|
|
80
|
+
// this.logger.debug(`${logPrefix}, start`);
|
|
80
81
|
if (this._monomerLengthList === null) {
|
|
81
82
|
this._monomerLengthList = new Array(this.tableCol.length).fill(null);
|
|
82
|
-
this._updated = true;
|
|
83
83
|
}
|
|
84
84
|
const minMonWidth = this.props.separatorWidth + 1 * this.props.monomerCharWidth;
|
|
85
85
|
const maxVisibleSeqLength = Math.ceil(this.colWidth / minMonWidth);
|
|
@@ -91,7 +91,7 @@ export class MonomerPlacer extends CellRendererBackBase {
|
|
|
91
91
|
let seqWidth = 0;
|
|
92
92
|
for (let seqMonI = 0; seqMonI < visibleSeqLength; ++seqMonI) {
|
|
93
93
|
const seqMonLabel = seqMonList[seqMonI];
|
|
94
|
-
const shortMon = this.props.monomerToShort(seqMonLabel, this.
|
|
94
|
+
const shortMon = this.props.monomerToShort(seqMonLabel, this.monomerLengthLimit);
|
|
95
95
|
const separatorWidth = this.props.seqHandler.isSeparator() ? this.separatorWidth : this.props.separatorWidth;
|
|
96
96
|
const seqMonWidth = separatorWidth + shortMon.length * this.props.monomerCharWidth;
|
|
97
97
|
res[seqMonI] = seqMonWidth;
|
|
@@ -99,15 +99,15 @@ export class MonomerPlacer extends CellRendererBackBase {
|
|
|
99
99
|
if (seqWidth > this.colWidth)
|
|
100
100
|
break;
|
|
101
101
|
}
|
|
102
|
-
this._updated = true;
|
|
103
102
|
}
|
|
104
103
|
return res;
|
|
105
104
|
}
|
|
106
105
|
getCellMonomerLengthsForSeqMsa() {
|
|
107
106
|
var _a;
|
|
107
|
+
const logPrefix = `${this.toLog()}.getCellMonomerLengthsForSeqMsa()`;
|
|
108
|
+
// this.logger.debug(`${logPrefix}, start`);
|
|
108
109
|
if (this._monomerLengthList === null) {
|
|
109
110
|
this._monomerLengthList = new Array(1).fill(null);
|
|
110
|
-
this._updated = true;
|
|
111
111
|
}
|
|
112
112
|
(_a = this._monomerLengthList)[0] ?? (_a[0] = new Array(0));
|
|
113
113
|
const res = this._monomerLengthList[0];
|
|
@@ -142,14 +142,13 @@ export class MonomerPlacer extends CellRendererBackBase {
|
|
|
142
142
|
let seqWidth = 0;
|
|
143
143
|
for (let seqMonI = 0; seqMonI < visibleSeqLength; ++seqMonI) {
|
|
144
144
|
const seqMonLabel = seqMonList[seqMonI];
|
|
145
|
-
const shortMon = this.props.monomerToShort(seqMonLabel, this.
|
|
145
|
+
const shortMon = this.props.monomerToShort(seqMonLabel, this.monomerLengthLimit);
|
|
146
146
|
const seqMonWidth = this.props.separatorWidth + shortMon.length * this.props.monomerCharWidth;
|
|
147
147
|
res[seqMonI] = Math.max(res[seqMonI] ?? 0, seqMonWidth);
|
|
148
148
|
seqWidth += seqMonWidth;
|
|
149
149
|
if (seqWidth >= this.colWidth)
|
|
150
150
|
break;
|
|
151
151
|
}
|
|
152
|
-
this._updated = true;
|
|
153
152
|
this._processedMaxVisibleSeqLength = Math.max(this._processedMaxVisibleSeqLength, maxVisibleSeqLength);
|
|
154
153
|
}
|
|
155
154
|
return res; // first (and single) row of data
|
|
@@ -164,12 +163,12 @@ export class MonomerPlacer extends CellRendererBackBase {
|
|
|
164
163
|
return hitBounds(monomerMaxLengthSumList, x);
|
|
165
164
|
}
|
|
166
165
|
setMonomerLengthLimit(limit) {
|
|
167
|
-
this.
|
|
168
|
-
this.
|
|
166
|
+
this.monomerLengthLimit = limit;
|
|
167
|
+
this.reset();
|
|
169
168
|
}
|
|
170
169
|
setSeparatorWidth(width) {
|
|
171
170
|
this.props.separatorWidth = width;
|
|
172
|
-
this.
|
|
171
|
+
this.reset();
|
|
173
172
|
}
|
|
174
173
|
isMsa() {
|
|
175
174
|
return this.props.seqHandler.isMsa();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAQnE,MAAM,UAAU,SAAS,CAAC,MAAgB,EAAE,CAAS;IACnD,IAAI,cAAc,GAAW,GAAG,CAAC;IACjC,IAAI,KAAK,GAAW,CAAC,CAAC;IACtB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC;IACT,OAAO,KAAK,IAAI,MAAM,EAAE;QACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;aACT,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACvB,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;aACf,gCAAgC;YACnC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;QAEnB,IAAI,EAAE,cAAc,IAAI,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,+BAA+B;gBAC9E,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACrC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,aAAc,SAAQ,oBAA4B;
|
|
1
|
+
{"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
|