@datagrok-libraries/bio 5.40.5 → 5.40.7
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 +10 -0
- package/package.json +1 -1
- package/src/types/index.d.ts +10 -1
- package/src/types/index.d.ts.map +1 -1
- package/src/types/index.js +6 -1
- package/src/types/index.js.map +1 -1
- package/src/utils/cell-renderer-monomer-placer.d.ts +4 -5
- package/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -1
- package/src/utils/cell-renderer-monomer-placer.js +7 -15
- package/src/utils/cell-renderer-monomer-placer.js.map +1 -1
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.40.
|
|
11
|
+
"version": "5.40.7",
|
|
12
12
|
"description": "Bio utilities, types supporting Macromolecule, Molecule3D data",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@datagrok-libraries/gridext": "^1.3.68",
|
package/src/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { HELM_REQUIRED_FIELD as REQ, HELM_RGROUP_FIELDS as RGP, HELM_OPTIONAL_FIELDS as OPT } from '../utils/const';
|
|
2
|
+
import { HELM_REQUIRED_FIELD as REQ, HELM_RGROUP_FIELDS as RGP, HELM_OPTIONAL_FIELDS as OPT, HELM_POLYMER_TYPE } from '../utils/const';
|
|
3
3
|
export type RGroup = {
|
|
4
4
|
[RGP.CAP_GROUP_SMILES]: string;
|
|
5
5
|
[RGP.ALTERNATE_ID]: string;
|
|
@@ -21,8 +21,10 @@ export type Monomer = {
|
|
|
21
21
|
[OPT.META]?: {
|
|
22
22
|
[property: string]: any;
|
|
23
23
|
};
|
|
24
|
+
lib?: IMonomerLib;
|
|
24
25
|
};
|
|
25
26
|
export interface IMonomerLib {
|
|
27
|
+
get source(): string | undefined;
|
|
26
28
|
get error(): string | undefined;
|
|
27
29
|
getMonomer(polymerType: string, monomerSymbol: string): Monomer | null;
|
|
28
30
|
getMonomerMolsByPolymerType(polymerType: string): {
|
|
@@ -33,5 +35,12 @@ export interface IMonomerLib {
|
|
|
33
35
|
getPolymerTypes(): string[];
|
|
34
36
|
update(lib: IMonomerLib): void;
|
|
35
37
|
get onChanged(): Observable<any>;
|
|
38
|
+
getTooltip(polymerType: string, monomerSymbol: string): HTMLElement;
|
|
36
39
|
}
|
|
40
|
+
export declare const alphabetPolymerTypes: {
|
|
41
|
+
DNA: HELM_POLYMER_TYPE;
|
|
42
|
+
RNA: HELM_POLYMER_TYPE;
|
|
43
|
+
PT: HELM_POLYMER_TYPE;
|
|
44
|
+
UN: HELM_POLYMER_TYPE;
|
|
45
|
+
};
|
|
37
46
|
//# sourceMappingURL=index.d.ts.map
|
package/src/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,EACL,mBAAmB,IAAI,GAAG,EAC1B,kBAAkB,IAAI,GAAG,EAAE,oBAAoB,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,EACL,mBAAmB,IAAI,GAAG,EAC1B,kBAAkB,IAAI,GAAG,EAAE,oBAAoB,IAAI,GAAG,EAAE,iBAAiB,EAC1E,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC/B,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACrB,CAAA;AACD,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACzC,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAAC;IAEhC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACvE,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7F,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjG,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvD,eAAe,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAEjC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC;CACrE;AAED,eAAO,MAAM,oBAAoB;;;;;CAKhC,CAAC"}
|
package/src/types/index.js
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export const alphabetPolymerTypes = {
|
|
2
|
+
["DNA" /* ALPHABET.DNA */]: "RNA" /* HELM_POLYMER_TYPE.RNA */,
|
|
3
|
+
["RNA" /* ALPHABET.RNA */]: "RNA" /* HELM_POLYMER_TYPE.RNA */,
|
|
4
|
+
["PT" /* ALPHABET.PT */]: "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */,
|
|
5
|
+
["UN" /* ALPHABET.UN */]: "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */,
|
|
6
|
+
};
|
|
2
7
|
//# sourceMappingURL=index.js.map
|
package/src/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAgDA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,0BAAc,mCAAuB;IACrC,0BAAc,mCAAuB;IACrC,wBAAa,2CAA2B;IACxC,wBAAa,2CAA2B;CACzC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
2
|
import { SeqHandler } from './seq-handler';
|
|
3
3
|
import { MonomerToShortFunc } from './macromolecule';
|
|
4
|
-
import { IMonomerLib
|
|
4
|
+
import { IMonomerLib } from '../types';
|
|
5
5
|
type MonomerPlacerProps = {
|
|
6
6
|
seqHandler: SeqHandler;
|
|
7
|
-
monomerLib
|
|
7
|
+
monomerLib: IMonomerLib;
|
|
8
8
|
monomerCharWidth: number;
|
|
9
9
|
separatorWidth: number;
|
|
10
10
|
monomerToShort: MonomerToShortFunc;
|
|
@@ -16,7 +16,7 @@ export declare class MonomerPlacer {
|
|
|
16
16
|
private readonly propsProvider;
|
|
17
17
|
private _monomerLengthList;
|
|
18
18
|
private separatorWidth;
|
|
19
|
-
|
|
19
|
+
props: MonomerPlacerProps;
|
|
20
20
|
private _rowsProcessed;
|
|
21
21
|
private _updated;
|
|
22
22
|
get updated(): boolean;
|
|
@@ -24,7 +24,7 @@ export declare class MonomerPlacer {
|
|
|
24
24
|
[key: string]: TextMetrics;
|
|
25
25
|
};
|
|
26
26
|
_monomerStructureMap: {
|
|
27
|
-
[key: string]:
|
|
27
|
+
[key: string]: HTMLElement;
|
|
28
28
|
};
|
|
29
29
|
private readonly subs;
|
|
30
30
|
/** View is required to subscribe and handle for data frame changes */
|
|
@@ -36,7 +36,6 @@ export declare class MonomerPlacer {
|
|
|
36
36
|
private getCellMonomerLengthsForSeqMsa;
|
|
37
37
|
/** Returns seq position for pointer x */
|
|
38
38
|
getPosition(rowIdx: number, x: number): number | null;
|
|
39
|
-
getMonomer(symbol: string): Monomer | null;
|
|
40
39
|
setMonomerLengthLimit(limit: number): void;
|
|
41
40
|
setSeparatorWidth(width: number): void;
|
|
42
41
|
isMsa(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-renderer-monomer-placer.d.ts","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAKtC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cell-renderer-monomer-placer.d.ts","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAKtC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAGrC,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IACjD,cAAc,EAAE,kBAAkB,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;CAChE,CAAC;AAEF,qBAAa,aAAa;aAiBN,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;aACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAlBhC,OAAO,CAAC,kBAAkB,CAA2B;IAGrD,OAAO,CAAC,cAAc,CAAK;IACpB,KAAK,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO,CAAC,QAAQ,CAAkB;IAClC,IAAW,OAAO,IAAI,OAAO,CAA0B;IAEhD,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;IACjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAE7C,sEAAsE;gBAEpD,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,aAAa,EAAE,MAAM,kBAAkB;IA4B1D,OAAO,CAAC,OAAO;IAIf,qGAAqG;IAC9F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IAWlE,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,8BAA8B;IAwCtC,yCAAyC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkCrD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,IAAI,OAAO;CAGxB"}
|
|
@@ -2,12 +2,6 @@ import * as grok from 'datagrok-api/grok';
|
|
|
2
2
|
import * as DG from 'datagrok-api/dg';
|
|
3
3
|
import wu from 'wu';
|
|
4
4
|
import { SeqHandler } from './seq-handler';
|
|
5
|
-
const polymerTypeMap = {
|
|
6
|
-
["DNA" /* ALPHABET.DNA */]: "RNA" /* HELM_POLYMER_TYPE.RNA */,
|
|
7
|
-
["RNA" /* ALPHABET.RNA */]: "RNA" /* HELM_POLYMER_TYPE.RNA */,
|
|
8
|
-
["PT" /* ALPHABET.PT */]: "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */,
|
|
9
|
-
["UN" /* ALPHABET.UN */]: "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */,
|
|
10
|
-
};
|
|
11
5
|
export class MonomerPlacer {
|
|
12
6
|
get updated() { return this._updated; }
|
|
13
7
|
/** View is required to subscribe and handle for data frame changes */
|
|
@@ -32,17 +26,20 @@ export class MonomerPlacer {
|
|
|
32
26
|
this._monomerLengthList = null;
|
|
33
27
|
this._rowsProcessed = DG.BitSet.create(this.col.length);
|
|
34
28
|
}
|
|
35
|
-
catch (
|
|
36
|
-
console.error(
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error(err);
|
|
37
31
|
}
|
|
38
32
|
}));
|
|
33
|
+
this.subs.push(this.props.monomerLib.onChanged.subscribe(() => {
|
|
34
|
+
this._monomerStructureMap = {};
|
|
35
|
+
}));
|
|
39
36
|
this.subs.push(grok.events.onViewRemoved.subscribe((view) => {
|
|
40
37
|
try {
|
|
41
38
|
if (this.grid?.view?.id === view.id)
|
|
42
39
|
this.destroy();
|
|
43
40
|
}
|
|
44
|
-
catch (
|
|
45
|
-
console.error(
|
|
41
|
+
catch (err) {
|
|
42
|
+
console.error(err);
|
|
46
43
|
}
|
|
47
44
|
}));
|
|
48
45
|
}
|
|
@@ -153,11 +150,6 @@ export class MonomerPlacer {
|
|
|
153
150
|
}
|
|
154
151
|
return left;
|
|
155
152
|
}
|
|
156
|
-
getMonomer(symbol) {
|
|
157
|
-
const alphabet = this.props.seqHandler.alphabet ?? "UN" /* ALPHABET.UN */;
|
|
158
|
-
const polymerType = polymerTypeMap[alphabet];
|
|
159
|
-
return this.props.monomerLib?.getMonomer(polymerType, symbol) ?? null;
|
|
160
|
-
}
|
|
161
153
|
setMonomerLengthLimit(limit) {
|
|
162
154
|
this.props.monomerLengthLimit = limit;
|
|
163
155
|
this._updated = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
|