@datagrok-libraries/bio 2.8.3 → 2.8.6

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units-handler.d.ts","sourceRoot":"","sources":["units-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,0EAA0E;AAC1E,0BAAkB,QAAQ;IACxB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED,iEAAiE;AACjE,qBAAa,YAAY;IACvB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC9B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,sBAAsB;;;;MAI9B;IAEF,SAAS,KAAK,KAAK,IAAI,MAAM,CAAwB;IAErD,SAAS,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,CAAyB;IAE1D,IAAW,QAAQ,IAAI,QAAQ,CAA2B;IAE1D,IAAW,gBAAgB,IAAI,MAAM,CAAmC;IAExE,IAAW,SAAS,IAAI,MAAM,CAM7B;IAEM,OAAO,IAAI,OAAO;IAElB,WAAW,IAAI,OAAO;IAEtB,MAAM,IAAI,OAAO;IAEjB,KAAK,IAAI,OAAO;IAEhB,KAAK,IAAI,OAAO;IAEhB,SAAS,IAAI,OAAO;IAE3B,4DAA4D;IAC5D;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,QAAQ;IAWjC;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,GAAG,EAAE,CAAC,MAAM;IAmB3D;;;;;;OAMG;WACW,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM;IAM7D;;;;;OAKG;WACW,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUxD;;;;;;;;OAQG;WACW,sBAAsB,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,EAAE,CAAC,MAAM;gBAYO,GAAG,EAAE,EAAE,CAAC,MAAM;CAYlC"}
@@ -0,0 +1,117 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ /** Class for handling notation units in Macromolecule columns */
3
+ export class UnitsHandler {
4
+ constructor(col) {
5
+ this._defaultGapSymbolsDict = {
6
+ HELM: '*',
7
+ SEPARATOR: '',
8
+ FASTA: '-',
9
+ };
10
+ this._column = col;
11
+ const units = this._column.tags[DG.TAGS.UNITS];
12
+ if (units !== null)
13
+ this._units = units;
14
+ else
15
+ throw new Error('Units are not specified in column');
16
+ this._notation = this.getNotation();
17
+ this._defaultGapSymbol = (this.isFasta()) ? this._defaultGapSymbolsDict.FASTA :
18
+ (this.isHelm()) ? this._defaultGapSymbolsDict.HELM :
19
+ this._defaultGapSymbolsDict.SEPARATOR;
20
+ }
21
+ get units() { return this._units; }
22
+ get column() { return this._column; }
23
+ get notation() { return this._notation; }
24
+ get defaultGapSymbol() { return this._defaultGapSymbol; }
25
+ get separator() {
26
+ const separator = this.column.getTag('separator');
27
+ if (separator !== null)
28
+ return separator;
29
+ else
30
+ throw new Error('Separator not set');
31
+ }
32
+ isFasta() { return this.notation === "FASTA" /* NOTATION.FASTA */; }
33
+ isSeparator() { return this.notation === "SEPARATOR" /* NOTATION.SEPARATOR */; }
34
+ isHelm() { return this.notation === "HELM" /* NOTATION.HELM */; }
35
+ isRna() { return this.units.toLowerCase().endsWith('rna'); }
36
+ isDna() { return this.units.toLowerCase().endsWith('dna'); }
37
+ isPeptide() { return this.units.toLowerCase().endsWith('pt'); }
38
+ /** Associate notation types with the corresponding units */
39
+ /**
40
+ * @return {NOTATION} Notation associated with the units type
41
+ */
42
+ getNotation() {
43
+ if (this.units.toLowerCase().startsWith('fasta'))
44
+ return "FASTA" /* NOTATION.FASTA */;
45
+ else if (this.units.toLowerCase().startsWith('separator'))
46
+ return "SEPARATOR" /* NOTATION.SEPARATOR */;
47
+ else if (this.units.toLowerCase().startsWith('helm'))
48
+ return "HELM" /* NOTATION.HELM */;
49
+ else
50
+ throw new Error('The column has units that do not correspond to any notation');
51
+ }
52
+ /**
53
+ * Create a new empty column of the specified notation type and the same
54
+ * length as column
55
+ *
56
+ * @param {NOTATION} targetNotation
57
+ * @return {DG.Column}
58
+ */
59
+ getNewColumn(targetNotation) {
60
+ const col = this.column;
61
+ const len = col.length;
62
+ const name = targetNotation.toLowerCase() + '(' + col.name + ')';
63
+ const newColName = col.dataFrame.columns.getUnusedName(name);
64
+ const newColumn = DG.Column.fromList('string', newColName, new Array(len).fill(''));
65
+ newColumn.semType = DG.SEMTYPE.MACROMOLECULE;
66
+ newColumn.setTag(DG.TAGS.UNITS, this.units.replace(this.notation.toLowerCase().toString(), targetNotation.toLowerCase().toString()));
67
+ newColumn.setTag(DG.TAGS.CELL_RENDERER, 'Macromolecule');
68
+ return newColumn;
69
+ }
70
+ /**
71
+ * Create a new empty column using templateCol as a template
72
+ *
73
+ * @param {DG.Column} templateCol the properties and units of this column are used as a
74
+ * template to build the new one
75
+ * @return {DG.Column}
76
+ */
77
+ static getNewColumn(templateCol) {
78
+ const col = new UnitsHandler(templateCol);
79
+ const targetNotation = col.notation;
80
+ return col.getNewColumn(targetNotation);
81
+ }
82
+ /**
83
+ * A helper function checking the validity of the 'units' string
84
+ *
85
+ * @param {string} units the string to be validated
86
+ * @return {boolean}
87
+ */
88
+ static unitsStringIsValid(units) {
89
+ units = units.toLowerCase();
90
+ const prefixes = ["FASTA" /* NOTATION.FASTA */, "SEPARATOR" /* NOTATION.SEPARATOR */, "HELM" /* NOTATION.HELM */];
91
+ const postfixes = ['rna', 'dna', 'pt'];
92
+ const prefixCriterion = prefixes.some((p) => units.startsWith(p.toLowerCase()));
93
+ const postfixCriterion = postfixes.some((p) => units.endsWith(p)); // already lowercase;
94
+ return prefixCriterion && postfixCriterion;
95
+ }
96
+ /**
97
+ * Construct a new column of semantic type MACROMOLECULE from the list of
98
+ * specified parameters
99
+ *
100
+ * @param {number} len the length of the new column
101
+ * @param {string} name the name of the new column
102
+ * @param {string} units the units of the new column
103
+ * @return {DG.Column}
104
+ */
105
+ static getNewColumnFromParams(len, name, units) {
106
+ // WARNING: in this implementation is is impossible to verify the uniqueness
107
+ // of the new column's name
108
+ // TODO: verify the validity of units parameter
109
+ if (!UnitsHandler.unitsStringIsValid(units))
110
+ throw new Error('Invalid format of \'units\' parameter');
111
+ const newColumn = DG.Column.fromList('string', name, new Array(len).fill(''));
112
+ newColumn.semType = DG.SEMTYPE.MACROMOLECULE;
113
+ newColumn.setTag(DG.TAGS.UNITS, units);
114
+ return newColumn;
115
+ }
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVuaXRzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVd0QyxpRUFBaUU7QUFDakUsTUFBTSxPQUFPLFlBQVk7SUFzSXZCLFlBQW1CLEdBQWM7UUFqSXZCLDJCQUFzQixHQUFHO1lBQ2pDLElBQUksRUFBRSxHQUFHO1lBQ1QsU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsR0FBRztTQUNYLENBQUM7UUE4SEEsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLEtBQUssS0FBSyxJQUFJO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDOztZQUVwQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3RSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUM7SUFDNUMsQ0FBQztJQXRJRCxJQUFjLEtBQUssS0FBYSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXJELElBQWMsTUFBTSxLQUFnQixPQUFPLElB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QUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlFLFNBQVMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDN0MsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBY0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuXG4vKiogZW51bSB0eXBlIHRvIHNpbXBsaWZ5IHNldHRpbmcgXCJ1c2VyLWZyaWVuZGx5XCIgbm90YXRpb24gaWYgbmVjZXNzYXJ5ICovXG5leHBvcnQgY29uc3QgZW51bSBOT1RBVElPTiB7XG4gIEZBU1RBID0gJ0ZBU1RBJyxcbiAgU0VQQVJBVE9SID0gJ1NFUEFSQVRPUicsXG4gIEhFTE0gPSAnSEVMTSdcbn1cblxuLyoqIENsYXNzIGZvciBoYW5kbGluZyBub3RhdGlvbiB1bml0cyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBVbml0c0hhbmRsZXIge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbHVtbjogREcuQ29sdW1uOyAvLyB0aGUgY29sdW1uIHRvIGJlIGNvbnZlcnRlZFxuICBwcm90ZWN0ZWQgX3VuaXRzOiBzdHJpbmc7IC8vIHVuaXRzLCBvZiB0aGUgZm9ybSBmYXN0YTpTRVE6TlQsIGV0Yy5cbiAgcHJvdGVjdGVkIF9ub3RhdGlvbjogTk9UQVRJT047IC8vIGN1cnJlbnQgbm90YXRpb24gKHdpdGhvdXQgOlNFUTpOVCwgZXRjLilcbiAgcHJvdGVjdGVkIF9kZWZhdWx0R2FwU3ltYm9sOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZGVmYXVsdEdhcFN5bWJvbHNEaWN0ID0ge1xuICAgIEhFTE06ICcqJyxcbiAgICBTRVBBUkFUT1I6ICcnLFxuICAgIEZBU1RBOiAnLScsXG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldCB1bml0cygpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fdW5pdHM7IH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNvbHVtbigpOiBERy5Db2x1bW4geyByZXR1cm4gdGhpcy5fY29sdW1uOyB9XG5cbiAgcHVibGljIGdldCBub3RhdGlvbigpOiBOT1RBVElPTiB7IHJldHVybiB0aGlzLl9ub3RhdGlvbjsgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdEdhcFN5bWJvbCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fZGVmYXVsdEdhcFN5bWJvbDsgfVxuXG4gIHB1YmxpYyBnZXQgc2VwYXJhdG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKTtcbiAgICBpZiAoc2VwYXJhdG9yICE9PSBudWxsKVxuICAgICAgcmV0dXJuIHNlcGFyYXRvcjtcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlcGFyYXRvciBub3Qgc2V0Jyk7XG4gIH1cblxuICBwdWJsaWMgaXNGYXN0YSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IE5PVEFUSU9OLkZBU1RBOyB9XG5cbiAgcHVibGljIGlzU2VwYXJhdG9yKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gTk9UQVRJT04uU0VQQVJBVE9SOyB9XG5cbiAgcHVibGljIGlzSGVsbSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IE5PVEFUSU9OLkhFTE07IH1cblxuICBwdWJsaWMgaXNSbmEoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ3JuYScpOyB9XG5cbiAgcHVibGljIGlzRG5hKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdkbmEnKTsgfVxuXG4gIHB1YmxpYyBpc1BlcHRpZGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ3B0Jyk7IH1cblxuICAvKiogQXNzb2NpYXRlIG5vdGF0aW9uIHR5cGVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdW5pdHMgKi9cbiAgLyoqXG4gICAqIEByZXR1cm4ge05PVEFUSU9OfSAgICAgTm90YXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0cyB0eXBlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Tm90YXRpb24oKTogTk9UQVRJT04ge1xuICAgIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnZmFzdGEnKSlcbiAgICAgIHJldHVybiBOT1RBVElPTi5GQVNUQTtcbiAgICBlbHNlIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnc2VwYXJhdG9yJykpXG4gICAgICByZXR1cm4gTk9UQVRJT04uU0VQQVJBVE9SO1xuICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdoZWxtJykpXG4gICAgICByZXR1cm4gTk9UQVRJT04uSEVMTTtcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb2x1bW4gaGFzIHVuaXRzIHRoYXQgZG8gbm90IGNvcnJlc3BvbmQgdG8gYW55IG5vdGF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAqIGxlbmd0aCBhcyBjb2x1bW5cbiAgICpcbiAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbjogTk9UQVRJT04pOiBERy5Db2x1bW4ge1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgIGNvbnN0IGxlbiA9IGNvbC5sZW5ndGg7XG4gICAgY29uc3QgbmFtZSA9IHRhcmdldE5vdGF0aW9uLnRvTG93ZXJDYXNlKCkgKyAnKCcgKyBjb2wubmFtZSArICcpJztcbiAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgY29uc3QgbmV3Q29sdW1uID0gREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCBuZXdDb2xOYW1lLCBuZXcgQXJyYXkobGVuKS5maWxsKCcnKSk7XG4gICAgbmV3Q29sdW1uLnNlbVR5cGUgPSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEU7XG4gICAgbmV3Q29sdW1uLnNldFRhZyhcbiAgICAgIERHLlRBR1MuVU5JVFMsXG4gICAgICB0aGlzLnVuaXRzLnJlcGxhY2UoXG4gICAgICAgIHRoaXMubm90YXRpb24udG9Mb3dlckNhc2UoKS50b1N0cmluZygpLFxuICAgICAgICB0YXJnZXROb3RhdGlvbi50b0xvd2VyQ2FzZSgpLnRvU3RyaW5nKClcbiAgICAgIClcbiAgICApO1xuICAgIG5ld0NvbHVtbi5zZXRUYWcoREcuVEFHUy5DRUxMX1JFTkRFUkVSLCAnTWFjcm9tb2xlY3VsZScpO1xuXG4gICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZW1wdHkgY29sdW1uIHVzaW5nIHRlbXBsYXRlQ29sIGFzIGEgdGVtcGxhdGVcbiAgICpcbiAgICogQHBhcmFtIHtERy5Db2x1bW59IHRlbXBsYXRlQ29sICB0aGUgcHJvcGVydGllcyBhbmQgdW5pdHMgb2YgdGhpcyBjb2x1bW4gYXJlIHVzZWQgYXMgYVxuICAgKiB0ZW1wbGF0ZSB0byBidWlsZCB0aGUgbmV3IG9uZVxuICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE5ld0NvbHVtbih0ZW1wbGF0ZUNvbDogREcuQ29sdW1uKTogREcuQ29sdW1uIHtcbiAgICBjb25zdCBjb2w6IFVuaXRzSGFuZGxlciA9IG5ldyBVbml0c0hhbmRsZXIodGVtcGxhdGVDb2wpO1xuICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gY29sLm5vdGF0aW9uO1xuICAgIHJldHVybiBjb2wuZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGhlbHBlciBmdW5jdGlvbiBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgdGhlICd1bml0cycgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0cyAgdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB1bml0cyA9IHVuaXRzLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgcHJlZml4ZXMgPSBbTk9UQVRJT04uRkFTVEEsIE5PVEFUSU9OLlNFUEFSQVRPUiwgTk9UQVRJT04uSEVMTV07XG4gICAgY29uc3QgcG9zdGZpeGVzID0gWydybmEnLCAnZG5hJywgJ3B0J107XG5cbiAgICBjb25zdCBwcmVmaXhDcml0ZXJpb24gPSBwcmVmaXhlcy5zb21lKChwKSA9PiB1bml0cy5zdGFydHNXaXRoKHAudG9Mb3dlckNhc2UoKSkpO1xuICAgIGNvbnN0IHBvc3RmaXhDcml0ZXJpb24gPSBwb3N0Zml4ZXMuc29tZSgocCkgPT4gdW5pdHMuZW5kc1dpdGgocCkpOyAvLyBhbHJlYWR5IGxvd2VyY2FzZTtcbiAgICByZXR1cm4gcHJlZml4Q3JpdGVyaW9uICYmIHBvc3RmaXhDcml0ZXJpb247XG4gIH1cblxuICAvKipcbiAgICogQ29uc3RydWN0IGEgbmV3IGNvbHVtbiBvZiBzZW1hbnRpYyB0eXBlIE1BQ1JPTU9MRUNVTEUgZnJvbSB0aGUgbGlzdCBvZlxuICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gICAgbGVuICB0aGUgbGVuZ3RoIG9mIHRoZSBuZXcgY29sdW1uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAgICBuYW1lICB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtblxuICAgKiBAcGFyYW0ge3N0cmluZ30gICAgdW5pdHMgIHRoZSB1bml0cyBvZiB0aGUgbmV3IGNvbHVtblxuICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE5ld0NvbHVtbkZyb21QYXJhbXMoXG4gICAgbGVuOiBudW1iZXIsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHVuaXRzOiBzdHJpbmdcbiAgKTogREcuQ29sdW1uIHtcbiAgICAvLyBXQVJOSU5HOiBpbiB0aGlzIGltcGxlbWVudGF0aW9uIGlzIGlzIGltcG9zc2libGUgdG8gdmVyaWZ5IHRoZSB1bmlxdWVuZXNzXG4gICAgLy8gb2YgdGhlIG5ldyBjb2x1bW4ncyBuYW1lXG4gICAgLy8gVE9ETzogdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB1bml0cyBwYXJhbWV0ZXJcbiAgICBpZiAoIVVuaXRzSGFuZGxlci51bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZvcm1hdCBvZiBcXCd1bml0c1xcJyBwYXJhbWV0ZXInKTtcbiAgICBjb25zdCBuZXdDb2x1bW4gPSBERy5Db2x1bW4uZnJvbUxpc3QoJ3N0cmluZycsIG5hbWUsIG5ldyBBcnJheShsZW4pLmZpbGwoJycpKTtcbiAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIHVuaXRzKTtcbiAgICByZXR1cm4gbmV3Q29sdW1uO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbDogREcuQ29sdW1uKSB7XG4gICAgdGhpcy5fY29sdW1uID0gY29sO1xuICAgIGNvbnN0IHVuaXRzID0gdGhpcy5fY29sdW1uLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgaWYgKHVuaXRzICE9PSBudWxsKVxuICAgICAgdGhpcy5fdW5pdHMgPSB1bml0cztcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuaXRzIGFyZSBub3Qgc3BlY2lmaWVkIGluIGNvbHVtbicpO1xuICAgIHRoaXMuX25vdGF0aW9uID0gdGhpcy5nZXROb3RhdGlvbigpO1xuICAgIHRoaXMuX2RlZmF1bHRHYXBTeW1ib2wgPSAodGhpcy5pc0Zhc3RhKCkpID8gdGhpcy5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBIDpcbiAgICAgICh0aGlzLmlzSGVsbSgpKSA/IHRoaXMuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNIDpcbiAgICAgICAgdGhpcy5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgfVxufVxuIl19
@@ -7,7 +7,7 @@ declare module 'datagrok-api/src/grid' {
7
7
  }
8
8
  declare global {
9
9
  interface HTMLCanvasElement {
10
- getCursorPosition(event: MouseEvent): DG.Point;
10
+ getCursorPosition(event: MouseEvent, r: number): DG.Point;
11
11
  }
12
12
  }
13
13
  export declare type MonomerFreqs = {
@@ -86,7 +86,7 @@ export declare class WebLogo extends DG.JsViewer {
86
86
  onTableAttached(): Promise<void>;
87
87
  detach(): Promise<void>;
88
88
  protected _nullSequence(fillerResidue?: string): string;
89
- protected _calculate(): void;
89
+ protected _calculate(r: number): void;
90
90
  render(recalc?: boolean): void;
91
91
  private calcSize;
92
92
  /**
@@ -111,6 +111,11 @@ export declare class WebLogo extends DG.JsViewer {
111
111
  */
112
112
  static splitterAsFasta(seq: any): string[];
113
113
  private static helmRe;
114
+ private static helmPp1Re;
115
+ /** Splits Helm string to monomers, but does not replace monomer names to other notation (e.g. for RNA).
116
+ * @param {string} seq Source string of HELM notation
117
+ * @return {string[]}
118
+ */
114
119
  static splitterAsHelm(seq: any): string[];
115
120
  /** Gets method to split sequence by separator
116
121
  * @param {string} separator
@@ -1 +1 @@
1
- {"version":3,"file":"web-logo.d.ts","sourceRoot":"","sources":["web-logo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-logo.d.ts","sourceRoot":"","sources":["web-logo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAUtC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG3C,OAAO,QAAQ,uBAAuB,CAAC;IACrC,UAAU,IAAI;QACZ,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACzC;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,iBAAiB;QACzB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;KAC3D;CACF;AAED,oBAAY,YAAY,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACnD,oBAAY,WAAW,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAA;AACrE,oBAAY,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;AAerD,qBAAa,mBAAmB;IAC9B;OACG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;OACG;IACH,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;;CAMjB;AAED,qBAAa,YAAY;IACvB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;gBACS,IAAI,EAAE,MAAM;CAKzB;AAED,qBAAa,OAAQ,SAAQ,EAAE,CAAC,QAAQ;IACtC,OAAc,WAAW,SAAiB;IAC1C,OAAO,CAAC,MAAM,CAAC,WAAW,CAAc;IAExC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAkB;IAGrC,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAAQ;IAEvC,OAAO,CAAC,IAAI,CAAC,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,UAAU,CAAc;IAEhC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAa;IAG7B,OAAO,CAAC,cAAc,CAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAEnC,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,aAAa,CAAc;IAEnC,OAAO,CAAC,WAAW,CAAc;IAEjC,0DAA0D;IAC1D,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,QAAQ,CAAsB;;YAkCxB,IAAI;IAwFlB,OAAO,CAAC,iBAAiB;IAQzB;OACG;IACH,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,eAAe;IA6BP,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI;IA8CxC,eAAe;IAmBf,MAAM;IAe5B,SAAS,CAAC,aAAa,CAAC,aAAa,SAAM,GAAG,MAAM;IAOpD,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM;IAiF9B,MAAM,CAAC,MAAM,UAAO;IAkFpB,OAAO,CAAC,QAAQ;IA0EhB;;;;OAIG;WACW,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,UAAU;IA4BjF;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW;WAwB5E,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM;WAoCjG,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI;IAW/D,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyB;IAEjD;;;OAGG;WACW,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;IAqBjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAqC;IAC1D,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoB;IAE5C;;;OAGG;WACW,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;IAmBhD;;;OAGG;WACW,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAMvE;;;;OAIG;WACW,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;WAa3D,oBAAoB,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,YAAY;IAShE,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,UAAU,CAKvB;IAEF,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAY;WAI9B,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;CAoB9C"}