@datagrok-libraries/bio 5.44.4 → 5.45.0

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.
Files changed (84) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/package.json +6 -6
  3. package/src/helm/consts.d.ts +2 -2
  4. package/src/helm/consts.d.ts.map +1 -1
  5. package/src/helm/consts.js.map +1 -1
  6. package/src/helm/helm-helper.d.ts +5 -5
  7. package/src/helm/helm-helper.d.ts.map +1 -1
  8. package/src/helm/types.d.ts +4 -3
  9. package/src/helm/types.d.ts.map +1 -1
  10. package/src/monomer-works/monomer-hover.d.ts +3 -2
  11. package/src/monomer-works/monomer-hover.d.ts.map +1 -1
  12. package/src/monomer-works/monomer-hover.js +4 -3
  13. package/src/monomer-works/monomer-hover.js.map +1 -1
  14. package/src/monomer-works/monomer-utils.d.ts +6 -5
  15. package/src/monomer-works/monomer-utils.d.ts.map +1 -1
  16. package/src/monomer-works/monomer-utils.js +10 -11
  17. package/src/monomer-works/monomer-utils.js.map +1 -1
  18. package/src/monomer-works/seq-to-molfile.d.ts +2 -2
  19. package/src/monomer-works/seq-to-molfile.d.ts.map +1 -1
  20. package/src/monomer-works/seq-to-molfile.js +2 -3
  21. package/src/monomer-works/seq-to-molfile.js.map +1 -1
  22. package/src/monomer-works/to-atomic-level-utils.d.ts +2 -2
  23. package/src/monomer-works/to-atomic-level-utils.d.ts.map +1 -1
  24. package/src/monomer-works/to-atomic-level-utils.js.map +1 -1
  25. package/src/monomer-works/to-atomic-level.d.ts +5 -5
  26. package/src/monomer-works/to-atomic-level.d.ts.map +1 -1
  27. package/src/monomer-works/to-atomic-level.js +17 -14
  28. package/src/monomer-works/to-atomic-level.js.map +1 -1
  29. package/src/types/index.d.ts +6 -4
  30. package/src/types/index.d.ts.map +1 -1
  31. package/src/unknown.d.ts.map +1 -1
  32. package/src/unknown.js +2 -2
  33. package/src/unknown.js.map +1 -1
  34. package/src/utils/cell-renderer-async-base.d.ts +1 -1
  35. package/src/utils/cell-renderer-async-base.d.ts.map +1 -1
  36. package/src/utils/cell-renderer-async-base.js +5 -3
  37. package/src/utils/cell-renderer-async-base.js.map +1 -1
  38. package/src/utils/cell-renderer-consts.d.ts +2 -1
  39. package/src/utils/cell-renderer-consts.d.ts.map +1 -1
  40. package/src/utils/cell-renderer-monomer-placer.d.ts +6 -4
  41. package/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -1
  42. package/src/utils/cell-renderer-monomer-placer.js +59 -47
  43. package/src/utils/cell-renderer-monomer-placer.js.map +1 -1
  44. package/src/utils/fasta-handler.d.ts.map +1 -1
  45. package/src/utils/fasta-handler.js +0 -3
  46. package/src/utils/fasta-handler.js.map +1 -1
  47. package/src/utils/generator.d.ts +2 -1
  48. package/src/utils/generator.d.ts.map +1 -1
  49. package/src/utils/generator.js +2 -3
  50. package/src/utils/generator.js.map +1 -1
  51. package/src/utils/macromolecule/consts.d.ts +1 -0
  52. package/src/utils/macromolecule/consts.d.ts.map +1 -1
  53. package/src/utils/macromolecule/consts.js +1 -0
  54. package/src/utils/macromolecule/consts.js.map +1 -1
  55. package/src/utils/macromolecule/scoring.d.ts +4 -2
  56. package/src/utils/macromolecule/scoring.d.ts.map +1 -1
  57. package/src/utils/macromolecule/scoring.js +8 -8
  58. package/src/utils/macromolecule/scoring.js.map +1 -1
  59. package/src/utils/macromolecule/seq-handler.d.ts +47 -0
  60. package/src/utils/macromolecule/seq-handler.d.ts.map +1 -0
  61. package/src/utils/macromolecule/seq-handler.js +8 -0
  62. package/src/utils/macromolecule/seq-handler.js.map +1 -0
  63. package/src/utils/macromolecule/types.d.ts +2 -1
  64. package/src/utils/macromolecule/types.d.ts.map +1 -1
  65. package/src/utils/macromolecule/types.js.map +1 -1
  66. package/src/utils/macromolecule/utils.d.ts +2 -1
  67. package/src/utils/macromolecule/utils.d.ts.map +1 -1
  68. package/src/utils/macromolecule/utils.js +4 -5
  69. package/src/utils/macromolecule/utils.js.map +1 -1
  70. package/src/utils/seq-helper.d.ts +2 -0
  71. package/src/utils/seq-helper.d.ts.map +1 -1
  72. package/src/utils/seq-helper.js.map +1 -1
  73. package/src/utils/splitter.d.ts +2 -1
  74. package/src/utils/splitter.d.ts.map +1 -1
  75. package/src/utils/splitter.js +2 -3
  76. package/src/utils/splitter.js.map +1 -1
  77. package/src/viewers/helm-service.d.ts +3 -1
  78. package/src/viewers/helm-service.d.ts.map +1 -1
  79. package/src/viewers/helm-service.js +2 -1
  80. package/src/viewers/helm-service.js.map +1 -1
  81. package/src/utils/seq-handler.d.ts +0 -167
  82. package/src/utils/seq-handler.d.ts.map +0 -1
  83. package/src/utils/seq-handler.js +0 -748
  84. package/src/utils/seq-handler.js.map +0 -1
@@ -1,12 +1,13 @@
1
1
  import * as ui from 'datagrok-api/ui';
2
2
  import * as DG from 'datagrok-api/dg';
3
3
  import wu from 'wu';
4
- import { SeqHandler } from './seq-handler';
4
+ import { getSeqHelper } from './seq-helper';
5
5
  import { ALPHABET, NOTATION, TAGS as bioTAGS } from './macromolecule';
6
6
  import { CellRendererBackBase, getGridCellColTemp } from './cell-renderer-back-base';
7
7
  import { getMonomerLibHelper } from '../monomer-works/monomer-utils';
8
8
  import { errInfo } from './err-info';
9
9
  import { DrawStyle, printLeftOrCentered, TAGS as mmcrTAGS } from './cell-renderer';
10
+ import { rendererSettingsChangedState } from './cell-renderer-consts';
10
11
  import { HelmTypes } from '../helm/consts';
11
12
  import { execMonomerHoverLinks } from '../monomer-works/monomer-hover';
12
13
  export const undefinedColor = 'rgb(100,100,100)';
@@ -43,7 +44,7 @@ export class MonomerPlacer extends CellRendererBackBase {
43
44
  this._processedMaxVisibleSeqLength = 0;
44
45
  this._monomerLengthMap = {}; // caches the lengths to save time on g.measureText
45
46
  this._monomerStructureMap = {}; // caches the atomic structures of monomers
46
- this.monomerLib = null;
47
+ this.sysMonomerLib = null;
47
48
  this.padding = 5;
48
49
  this.props = this.propsProvider();
49
50
  this._processedRows = DG.BitSet.create(this.tableCol.length);
@@ -59,21 +60,29 @@ export class MonomerPlacer extends CellRendererBackBase {
59
60
  if (df.currentRowIdx === -1) {
60
61
  this.tableCol.temp["reference-sequence" /* tempTAGS.referenceSequence */] = null;
61
62
  this.tableCol.temp["current-word" /* tempTAGS.currentWord */] = null;
62
- grid.invalidate();
63
+ this.invalidateGrid();
63
64
  }
64
65
  }));
65
66
  }
66
- getMonomerLibHelper().then((libHelper) => {
67
- if (this.destroyed)
68
- return;
69
- this.monomerLib = libHelper.getMonomerLib();
70
- this.dirty = true;
71
- this.gridCol?.grid?.invalidate();
72
- this.subs.push(this.monomerLib.onChanged.subscribe(() => {
73
- this.dirty = true;
74
- this.gridCol?.grid?.invalidate();
75
- }));
76
- });
67
+ }
68
+ async init() {
69
+ await Promise.all([
70
+ (async () => {
71
+ this.seqHelper = await getSeqHelper();
72
+ this.invalidateGrid();
73
+ })(),
74
+ (async () => {
75
+ const libHelper = await getMonomerLibHelper();
76
+ this.sysMonomerLib = libHelper.getMonomerLib();
77
+ })(),
78
+ ]);
79
+ this.subs.push(this.sysMonomerLib.onChanged.subscribe(() => {
80
+ this.reset();
81
+ }));
82
+ this.reset();
83
+ }
84
+ getMonomerLib() {
85
+ return this.tableCol.temp[".mm.cellRenderer.overriddenLibrary" /* MmcrTemps.overriddenLibrary */] ?? this.sysMonomerLib;
77
86
  }
78
87
  reset() {
79
88
  if (this.propsProvider)
@@ -83,9 +92,15 @@ export class MonomerPlacer extends CellRendererBackBase {
83
92
  this._monomerLengthMap = {};
84
93
  this._monomerStructureMap = {};
85
94
  super.reset();
95
+ this.invalidateGrid();
96
+ }
97
+ invalidateGrid() {
98
+ if (this.gridCol && this.gridCol.dart)
99
+ this.gridCol.grid?.invalidate();
86
100
  }
87
101
  /** Returns monomers lengths of the {@link rowIdx} and cumulative sums for borders, monomer places */
88
102
  getCellMonomerLengths(rowIdx, newWidth) {
103
+ const sh = this.seqHelper.getSeqHandler(this.tableCol);
89
104
  if (this.colWidth < newWidth) {
90
105
  this.colWidth = newWidth;
91
106
  this.dirty = true;
@@ -99,7 +114,7 @@ export class MonomerPlacer extends CellRendererBackBase {
99
114
  this.logger.error(errMsg, undefined, errStack);
100
115
  }
101
116
  }
102
- const res = this.props.seqHandler.isMsa() ? this.getCellMonomerLengthsForSeqMsa() :
117
+ const res = sh.isMsa() ? this.getCellMonomerLengthsForSeqMsa() :
103
118
  this.getCellMonomerLengthsForSeq(rowIdx);
104
119
  const resSum = new Array(res.length + 1);
105
120
  resSum[0] = 5; // padding
@@ -112,9 +127,10 @@ export class MonomerPlacer extends CellRendererBackBase {
112
127
  // this.logger.debug(`${logPrefix}, start`);
113
128
  if (this._monomerLengthList === null)
114
129
  this._monomerLengthList = new Array(this.tableCol.length).fill(null);
130
+ const sh = this.seqHelper.getSeqHandler(this.tableCol);
115
131
  const minMonWidth = this.props.separatorWidth + 1 * this.props.monomerCharWidth;
116
132
  const maxVisibleSeqLength = Math.ceil(this.colWidth / minMonWidth);
117
- const seqSS = SeqHandler.forColumn(this.tableCol).getSplitted(rowIdx);
133
+ const seqSS = sh.getSplitted(rowIdx);
118
134
  const visibleSeqLength = Math.min(maxVisibleSeqLength, seqSS.length);
119
135
  let res = this._monomerLengthList[rowIdx];
120
136
  if (res === null || res.length < visibleSeqLength) {
@@ -123,7 +139,7 @@ export class MonomerPlacer extends CellRendererBackBase {
123
139
  for (let seqMonI = 0; seqMonI < visibleSeqLength; ++seqMonI) {
124
140
  const seqMonLabel = seqSS.getOriginal(seqMonI);
125
141
  const shortMon = this.props.monomerToShort(seqMonLabel, this.monomerLengthLimit);
126
- const separatorWidth = this.props.seqHandler.isSeparator() ? this.separatorWidth : this.props.separatorWidth;
142
+ const separatorWidth = sh.isSeparator() ? this.separatorWidth : this.props.separatorWidth;
127
143
  const seqMonWidth = separatorWidth + shortMon.length * this.props.monomerCharWidth;
128
144
  res[seqMonI] = seqMonWidth;
129
145
  seqWidth += seqMonWidth;
@@ -164,7 +180,7 @@ export class MonomerPlacer extends CellRendererBackBase {
164
180
  for (let seqIdx = startIdx; seqIdx < endIdx; seqIdx++) {
165
181
  if (this._processedRows.get(seqIdx) && maxVisibleSeqLength <= this._processedMaxVisibleSeqLength)
166
182
  continue;
167
- const seqSS = SeqHandler.forColumn(this.tableCol)
183
+ const seqSS = this.seqHelper.getSeqHandler(this.tableCol)
168
184
  .getSplitted(seqIdx, maxVisibleSeqLength);
169
185
  const visibleSeqLength = Math.min(maxVisibleSeqLength, seqSS.length);
170
186
  if (visibleSeqLength > res.length)
@@ -186,7 +202,7 @@ export class MonomerPlacer extends CellRendererBackBase {
186
202
  /** Returns seq position for pointer x */
187
203
  getPosition(rowIdx, x, width) {
188
204
  const [_monomerMaxLengthList, monomerMaxLengthSumList] = this.getCellMonomerLengths(rowIdx, width);
189
- const sh = SeqHandler.forColumn(this.tableCol);
205
+ const sh = this.seqHelper.getSeqHandler(this.tableCol);
190
206
  const seqSS = sh.getSplitted(rowIdx);
191
207
  if (seqSS.length === 0)
192
208
  return null;
@@ -204,14 +220,12 @@ export class MonomerPlacer extends CellRendererBackBase {
204
220
  this.dirty = true;
205
221
  }
206
222
  }
207
- isMsa() {
208
- return this.props.seqHandler.isMsa();
209
- }
210
223
  render(g, x, y, w, h, gridCell, _cellStyle) {
224
+ if (!this.seqHelper)
225
+ return;
211
226
  const gridCol = this.gridCol;
212
227
  const tableCol = this.tableCol;
213
228
  const dpr = window.devicePixelRatio;
214
- const separatorWidth = this.props.separatorWidth;
215
229
  // Cell renderer settings
216
230
  let maxLengthOfMonomer = this.monomerLengthLimit;
217
231
  if (mmcrTAGS.maxMonomerLength in tableCol.tags) {
@@ -224,17 +238,18 @@ export class MonomerPlacer extends CellRendererBackBase {
224
238
  }
225
239
  g.save();
226
240
  try {
227
- // if (
228
- // tableCol.temp[MmcrTemps.rendererSettingsChanged] === rendererSettingsChangedState.true ||
229
- // this.monomerLengthLimit != maxLengthOfMonomer
230
- // ) {
231
- // gapLength = tableCol.temp[MmcrTemps.gapLength] as number ?? gapLength;
232
- // // this event means that the mm renderer settings have changed,
233
- // // particularly monomer representation and max width.
234
- // this.setMonomerLengthLimit(maxLengthOfMonomer);
235
- // this.setSeparatorWidth(this.isMsa() ? msaGapLength : gapLength);
236
- // tableCol.temp[MmcrTemps.rendererSettingsChanged] = rendererSettingsChangedState.false;
237
- // }
241
+ const sh = this.seqHelper.getSeqHandler(tableCol);
242
+ if (tableCol.temp[".mm.cellRenderer.settingsChanged" /* MmcrTemps.rendererSettingsChanged */] === rendererSettingsChangedState.true ||
243
+ this.monomerLengthLimit != maxLengthOfMonomer) {
244
+ let gapLength = 0;
245
+ const msaGapLength = 8;
246
+ gapLength = tableCol.temp[".mm.cellRenderer.gapLength" /* MmcrTemps.gapLength */] ?? gapLength;
247
+ // this event means that the mm renderer settings have changed,
248
+ // particularly monomer representation and max width.
249
+ this.setMonomerLengthLimit(maxLengthOfMonomer);
250
+ this.setSeparatorWidth(sh.isMsa() ? msaGapLength : gapLength);
251
+ tableCol.temp[".mm.cellRenderer.settingsChanged" /* MmcrTemps.rendererSettingsChanged */] = rendererSettingsChangedState.false;
252
+ }
238
253
  const [maxLengthWords, maxLengthWordsSum] = this.getCellMonomerLengths(gridCell.tableRowIndex, w);
239
254
  const _maxIndex = maxLengthWords.length;
240
255
  const value = gridCell.cell.value;
@@ -253,7 +268,6 @@ export class MonomerPlacer extends CellRendererBackBase {
253
268
  const separator = tableCol.getTag(bioTAGS.separator) ?? '';
254
269
  const minMonWidth = this.props.separatorWidth + 1 * this.props.monomerCharWidth;
255
270
  const splitLimit = Math.ceil(w / minMonWidth);
256
- const sh = SeqHandler.forColumn(tableCol);
257
271
  const tempReferenceSequence = tableCol.temp["reference-sequence" /* tempTAGS.referenceSequence */];
258
272
  const tempCurrentWord = this.tableCol.temp["current-word" /* tempTAGS.currentWord */];
259
273
  if (tempCurrentWord && tableCol?.dataFrame?.currentRowIdx === -1)
@@ -266,21 +280,19 @@ export class MonomerPlacer extends CellRendererBackBase {
266
280
  return wu.count(0).take(seqSS.length).map((posIdx) => seqSS.getOriginal(posIdx)).toArray();
267
281
  })();
268
282
  const subParts = sh.getSplitted(rowIdx);
269
- /* let x1 = x; */
270
- const color = undefinedColor;
271
283
  let drawStyle = DrawStyle.classic;
272
284
  if (aligned && aligned.includes('MSA') && units == NOTATION.SEPARATOR)
273
285
  drawStyle = DrawStyle.MSA;
274
286
  const visibleSeqLength = Math.min(subParts.length, splitLimit);
275
287
  for (let posIdx = 0; posIdx < visibleSeqLength; ++posIdx) {
288
+ const om = subParts.getOriginal(posIdx);
276
289
  const cm = subParts.getCanonical(posIdx);
277
290
  let color = undefinedColor;
278
- if (this.monomerLib) {
279
- const sh = SeqHandler.forColumn(this.tableCol);
291
+ const monomerLib = this.getMonomerLib();
292
+ if (monomerLib) {
280
293
  const biotype = sh.defaultBiotype;
281
294
  //this.logger.debug(`${logPrefix}, biotype: ${biotype}, amino: ${amino}`);
282
- const wem = this.monomerLib.getWebEditorMonomer(biotype, cm);
283
- color = wem.backgroundcolor;
295
+ color = monomerLib.getMonomerTextColor(biotype, cm);
284
296
  }
285
297
  g.fillStyle = undefinedColor;
286
298
  const last = posIdx === subParts.length - 1;
@@ -291,7 +303,7 @@ export class MonomerPlacer extends CellRendererBackBase {
291
303
  referenceSequence: referenceSequence, maxLengthOfMonomer: maxLengthOfMonomer,
292
304
  monomerTextSizeMap: this._monomerLengthMap, logger: this.logger
293
305
  };
294
- printLeftOrCentered(g, cm, x + this.padding, y, w, h, opts);
306
+ printLeftOrCentered(g, om, x + this.padding, y, w, h, opts);
295
307
  if (minDistanceRenderer > w)
296
308
  break;
297
309
  }
@@ -307,7 +319,7 @@ export class MonomerPlacer extends CellRendererBackBase {
307
319
  }
308
320
  }
309
321
  onMouseMove(gridCell, e) {
310
- if (gridCell.tableRowIndex == null)
322
+ if (!this.seqHelper || gridCell.tableRowIndex == null)
311
323
  return;
312
324
  // if (gridCell.cell.column.getTag(bioTAGS.aligned) !== ALIGNMENT.SEQ_MSA)
313
325
  // return;
@@ -325,10 +337,9 @@ export class MonomerPlacer extends CellRendererBackBase {
325
337
  // const maxIndex = maxLengthWords.length;
326
338
  const argsX = e.offsetX - gridCell.gridColumn.left + (gridCell.gridColumn.left - gridCellBounds.x);
327
339
  const left = seqColTemp.getPosition(gridCell.tableRowIndex, argsX, gridCellBounds.width);
328
- const seqSS = SeqHandler.forColumn(tableCol)
329
- .getSplitted(gridCell.tableRowIndex);
340
+ const sh = this.seqHelper.getSeqHandler(tableCol);
341
+ const seqSS = sh.getSplitted(gridCell.tableRowIndex);
330
342
  if (left !== null && left < seqSS.length) {
331
- const sh = SeqHandler.forColumn(tableCol);
332
343
  const alphabet = sh.alphabet ?? ALPHABET.UN;
333
344
  const seqMonomer = {
334
345
  position: left,
@@ -338,8 +349,9 @@ export class MonomerPlacer extends CellRendererBackBase {
338
349
  const tooltipElements = [];
339
350
  let monomerDiv = seqColTemp._monomerStructureMap[seqMonomer.symbol];
340
351
  if (!monomerDiv || true) {
352
+ const monomerLib = this.getMonomerLib();
341
353
  monomerDiv = seqColTemp._monomerStructureMap[seqMonomer.symbol] = (() => {
342
- return this.monomerLib ? this.monomerLib.getTooltip(seqMonomer.biotype, seqMonomer.symbol) :
354
+ return monomerLib ? monomerLib.getTooltip(seqMonomer.biotype, seqMonomer.symbol) :
343
355
  ui.divText('Monomer library is not available');
344
356
  })();
345
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fasta-handler.d.ts","sourceRoot":"","sources":["fasta-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAKtC,oCAAoC;AACpC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,eAAe,CAAgB;IAGvC,IAAW,iBAAiB,IAAI,MAAM,EAAE,CAAoC;IAE5E,IAAW,cAAc,IAAI,MAAM,EAAE,CAAiC;IAEtE;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAS1B,2DAA2D;IAC3D,OAAO,CAAC,YAAY;IAiBpB;;;;OAIG;IACI,WAAW,IAAI,EAAE,CAAC,SAAS,EAAG;gBAezB,WAAW,EAAE,MAAM;CAIhC"}
1
+ {"version":3,"file":"fasta-handler.d.ts","sourceRoot":"","sources":["fasta-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,oCAAoC;AACpC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,eAAe,CAAgB;IAGvC,IAAW,iBAAiB,IAAI,MAAM,EAAE,CAAoC;IAE5E,IAAW,cAAc,IAAI,MAAM,EAAE,CAAiC;IAEtE;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAS1B,2DAA2D;IAC3D,OAAO,CAAC,YAAY;IAiBpB;;;;OAIG;IACI,WAAW,IAAI,EAAE,CAAC,SAAS,EAAG;gBAYzB,WAAW,EAAE,MAAM;CAIhC"}
@@ -1,5 +1,4 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
- import { SeqHandler } from './seq-handler';
3
2
  import { NOTATION } from './macromolecule/consts';
4
3
  /** Class for parsing FASTA files */
5
4
  export class FastaFileHandler {
@@ -44,8 +43,6 @@ export class FastaFileHandler {
44
43
  const sequenceCol = DG.Column.fromStrings('sequence', this.sequencesArray);
45
44
  sequenceCol.semType = DG.SEMTYPE.MACROMOLECULE;
46
45
  sequenceCol.meta.units = NOTATION.FASTA;
47
- // here should go the code from units handler
48
- const sh = SeqHandler.forColumn(sequenceCol);
49
46
  return [DG.DataFrame.fromColumns([
50
47
  descriptionsArrayCol,
51
48
  sequenceCol,
@@ -1 +1 @@
1
- {"version":3,"file":"fasta-handler.js","sourceRoot":"","sources":["fasta-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAEhD,oCAAoC;AACpC,MAAM,OAAO,gBAAgB;IAI3B,2CAA2C;IAE3C,IAAW,iBAAiB,KAAe,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE5E,IAAW,cAAc,KAAe,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACK,kBAAkB,CACxB,eAAuB,EACvB,aAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,2DAA2D;IACnD,YAAY;QAClB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,4CAA4C;QAEvE,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,CAAC,mDAAmD;QAC9D,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,eAAe,KAAK,CAAC;gBACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACnF,eAAe,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,8BAA8B;IAChC,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,MAAM,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1F,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3E,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/C,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAExC,6CAA6C;QAC7C,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE7C,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC/B,oBAAoB;gBACpB,WAAW;aACZ,CAAC,CAAC,CAAC;IACN,CAAC;IAED,YAAY,WAAmB;QA/DvB,uBAAkB,GAAa,EAAE,CAAC,CAAC,4BAA4B;QAC/D,oBAAe,GAAa,EAAE,CAAC,CAAC,wBAAwB;QA+D9D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"fasta-handler.js","sourceRoot":"","sources":["fasta-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAEhD,oCAAoC;AACpC,MAAM,OAAO,gBAAgB;IAI3B,2CAA2C;IAE3C,IAAW,iBAAiB,KAAe,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE5E,IAAW,cAAc,KAAe,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACK,kBAAkB,CACxB,eAAuB,EACvB,aAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,2DAA2D;IACnD,YAAY;QAClB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,4CAA4C;QAEvE,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,CAAC,mDAAmD;QAC9D,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,eAAe,KAAK,CAAC;gBACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACnF,eAAe,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,8BAA8B;IAChC,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,MAAM,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1F,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3E,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/C,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAExC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC/B,oBAAoB;gBACpB,WAAW;aACZ,CAAC,CAAC,CAAC;IACN,CAAC;IAED,YAAY,WAAmB;QA5DvB,uBAAkB,GAAa,EAAE,CAAC,CAAC,4BAA4B;QAC/D,oBAAe,GAAa,EAAE,CAAC,CAAC,wBAAwB;QA4D9D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
@@ -1,8 +1,9 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { ALPHABET, NOTATION } from './macromolecule';
3
+ import { ISeqHelper } from './seq-helper';
3
4
  import { IMonomerLib } from '../types/index';
4
5
  export declare function generateManySequences(): DG.Column[];
5
6
  /** Generates the column 'MSA' with sequences length of order 10^6 and the 'Activity' float column. */
6
7
  export declare function generateLongSequence(length?: number): DG.Column[];
7
- export declare function generateLongSequence2(notation?: NOTATION, alphabet?: ALPHABET, separator?: string | undefined, monomerLib?: IMonomerLib | undefined, colName?: string, rowCount?: number, seqLength?: number): DG.Column;
8
+ export declare function generateLongSequence2(seqHelper: ISeqHelper, notation?: NOTATION, alphabet?: ALPHABET, separator?: string | undefined, monomerLib?: IMonomerLib | undefined, colName?: string, rowCount?: number, seqLength?: number): DG.Column;
8
9
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,QAAQ,EAAe,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAI3C,wBAAgB,qBAAqB,IAAI,EAAE,CAAC,MAAM,EAAE,CAQnD;AAED,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAAgB,GAAG,EAAE,CAAC,MAAM,EAAE,CAc1E;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,GAAE,QAA6B,EAAE,QAAQ,GAAE,QAAsB,EACzE,SAAS,GAAE,MAAM,GAAG,SAA+D,EACnF,UAAU,GAAE,WAAW,GAAG,SAAqB,EAC/C,OAAO,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAY,EAAE,SAAS,GAAE,MAAgB,GAC3E,EAAE,CAAC,MAAM,CAqBX"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,QAAQ,EAAe,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAExC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAI3C,wBAAgB,qBAAqB,IAAI,EAAE,CAAC,MAAM,EAAE,CAQnD;AAED,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAAgB,GAAG,EAAE,CAAC,MAAM,EAAE,CAc1E;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,UAAU,EACzD,QAAQ,GAAE,QAA6B,EAAE,QAAQ,GAAE,QAAsB,EACzE,SAAS,GAAE,MAAM,GAAG,SAA+D,EACnF,UAAU,GAAE,WAAW,GAAG,SAAqB,EAC/C,OAAO,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAY,EAAE,SAAS,GAAE,MAAgB,GAC3E,EAAE,CAAC,MAAM,CAqBX"}
@@ -1,7 +1,6 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import wu from 'wu';
3
3
  import { ALPHABET, getAlphabet, NOTATION, TAGS } from './macromolecule';
4
- import { SeqHandler } from './seq-handler';
5
4
  import { StringListSeqSplitted } from './macromolecule/utils';
6
5
  import { GapOriginals } from './macromolecule/consts';
7
6
  export function generateManySequences() {
@@ -24,7 +23,7 @@ export function generateLongSequence(length = 10 ** 5) {
24
23
  columns.push(DG.Column.fromList(DG.COLUMN_TYPE.FLOAT, 'Activity', new Array(10 ** 2).fill(7.30751)));
25
24
  return columns;
26
25
  }
27
- export function generateLongSequence2(notation = NOTATION.SEPARATOR, alphabet = ALPHABET.PT, separator = (notation === NOTATION.SEPARATOR ? '-' : undefined), monomerLib = undefined, colName = 'seq', rowCount = 100, seqLength = 10 ** 6) {
26
+ export function generateLongSequence2(seqHelper, notation = NOTATION.SEPARATOR, alphabet = ALPHABET.PT, separator = (notation === NOTATION.SEPARATOR ? '-' : undefined), monomerLib = undefined, colName = 'seq', rowCount = 100, seqLength = 10 ** 6) {
28
27
  const alphabetSet = alphabet === ALPHABET.UN ?
29
28
  monomerLib?.getMonomerSymbolsByType("PEPTIDE" /* PolymerTypes.PEPTIDE */) ?? [] : Array.from(getAlphabet(alphabet));
30
29
  const alphabetSize = alphabetSet.length;
@@ -34,7 +33,7 @@ export function generateLongSequence2(notation = NOTATION.SEPARATOR, alphabet =
34
33
  col.setTag(TAGS.alphabet, alphabet);
35
34
  if (notation == NOTATION.SEPARATOR)
36
35
  col.setTag(TAGS.separator, separator);
37
- const sh = SeqHandler.forColumn(col);
36
+ const sh = seqHelper.getSeqHandler(col);
38
37
  for (let rowI = 0; rowI < rowCount; rowI++) {
39
38
  const seqMList = wu.count(0).take(seqLength)
40
39
  .map((i) => { return alphabetSet[Math.floor(Math.random() * alphabetSize)]; })
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["generator.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export declare enum TAGS {
28
28
  positionLabels = ".positionLabels",
29
29
  regions = ".regions"
30
30
  }
31
+ export { TAGS as BioTags };
31
32
  export declare const positionSeparator: string;
32
33
  export declare const monomerRe: RegExp;
33
34
  export declare const helmRe: RegExp;
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,0EAA0E;AAC1E,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACmB,MAAM,WAAW;CAClD;AAED,0BAAkB,SAAS;IACzB,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,cAAc;IACd,EAAE,OAAO;CACV;AAED,oBAAY,IAAI;IACd,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,kBAAkB;IAC9B,mBAAmB,yBAAyB;IAC5C,SAAS,cAAc;IACvB,gBAAgB,sBAAsB;IACtC,aAAa,mBAAmB;IAChC,cAAc,oBAAoB;IAClC,OAAO,aAAa;CACrB;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAa,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,MAAqD,CAAC;AAE9E,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAC;AAChE,eAAO,MAAM,SAAS,EAAE,MAAyB,CAAC;AAElD,eAAO,MAAM,SAAS;;;;;;CASnB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAI7C,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,UAAU,EAAE,MAAW,CAAC;AAErC,eAAO,MAAM,YAAY,EAAE;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAKxB,CAAC"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,0EAA0E;AAC1E,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACmB,MAAM,WAAW;CAClD;AAED,0BAAkB,SAAS;IACzB,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,cAAc;IACd,EAAE,OAAO;CACV;AAED,oBAAY,IAAI;IACd,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,kBAAkB;IAC9B,mBAAmB,yBAAyB;IAC5C,SAAS,cAAc;IACvB,gBAAgB,sBAAsB;IACtC,aAAa,mBAAmB;IAChC,cAAc,oBAAoB;IAClC,OAAO,aAAa;CACrB;AAED,OAAO,EAAC,IAAI,IAAI,OAAO,EAAC,CAAC;AAEzB,eAAO,MAAM,iBAAiB,EAAE,MAAa,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,MAAqD,CAAC;AAE9E,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAC;AAChE,eAAO,MAAM,SAAS,EAAE,MAAyB,CAAC;AAElD,eAAO,MAAM,SAAS;;;;;;CASnB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAI7C,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,UAAU,EAAE,MAAW,CAAC;AAErC,eAAO,MAAM,YAAY,EAAE;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAKxB,CAAC"}
@@ -27,6 +27,7 @@ export var TAGS;
27
27
  TAGS["positionLabels"] = ".positionLabels";
28
28
  TAGS["regions"] = ".regions";
29
29
  })(TAGS || (TAGS = {}));
30
+ export { TAGS as BioTags };
30
31
  export const positionSeparator = ', ';
31
32
  export const monomerRe = /(?:\[([A-Za-z0-9_\-,()]+)\])|([A-Za-z\-])/g;
32
33
  export const helmRe = /(PEPTIDE1|DNA1|RNA1)\{([^}]+)}/g;
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,mCAAuB,CAAA;IACvB,yBAAa,CAAA;IACb,+BAA+B,CAAC,6BAAiB,CAAA;AACnD,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAOD,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,qBAAS,CAAA;IACT,cAAc;IACd,qBAAS,CAAA;AACX,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED,MAAM,CAAN,IAAY,IAUX;AAVD,WAAY,IAAI;IACd,2BAAmB,CAAA;IACnB,6BAAqB,CAAA;IACrB,sCAA8B,CAAA;IAC9B,oDAA4C,CAAA;IAC5C,+BAAuB,CAAA;IACvB,8CAAsC,CAAA;IACtC,wCAAgC,CAAA;IAChC,0CAAkC,CAAA;IAClC,4BAAoB,CAAA;AACtB,CAAC,EAVW,IAAI,KAAJ,IAAI,QAUf;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAW,IAAI,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAW,4CAA4C,CAAC;AAE9E,MAAM,CAAC,MAAM,MAAM,GAAW,iCAAiC,CAAC;AAChE,MAAM,CAAC,MAAM,SAAS,GAAW,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI;IAAA;QAC3B,UAAK,GAAG;YACN,OAAO,EAAE,IAAI,GAAG,CAAS;gBACvB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;gBAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;aACjD,CAAC;YACF,GAAG,EAAE,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,GAAG,EAAE,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SAC3C,CAAC;IACJ,CAAC;CAAA,EAAE,CAAC;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC7D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAC1D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;CAC3D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAW,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAErB;IACF,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG;IACrB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE;IACxB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG;CACrB,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,mCAAuB,CAAA;IACvB,yBAAa,CAAA;IACb,+BAA+B,CAAC,6BAAiB,CAAA;AACnD,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAOD,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,qBAAS,CAAA;IACT,cAAc;IACd,qBAAS,CAAA;AACX,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED,MAAM,CAAN,IAAY,IAUX;AAVD,WAAY,IAAI;IACd,2BAAmB,CAAA;IACnB,6BAAqB,CAAA;IACrB,sCAA8B,CAAA;IAC9B,oDAA4C,CAAA;IAC5C,+BAAuB,CAAA;IACvB,8CAAsC,CAAA;IACtC,wCAAgC,CAAA;IAChC,0CAAkC,CAAA;IAClC,4BAAoB,CAAA;AACtB,CAAC,EAVW,IAAI,KAAJ,IAAI,QAUf;AAED,OAAO,EAAC,IAAI,IAAI,OAAO,EAAC,CAAC;AAEzB,MAAM,CAAC,MAAM,iBAAiB,GAAW,IAAI,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAW,4CAA4C,CAAC;AAE9E,MAAM,CAAC,MAAM,MAAM,GAAW,iCAAiC,CAAC;AAChE,MAAM,CAAC,MAAM,SAAS,GAAW,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI;IAAA;QAC3B,UAAK,GAAG;YACN,OAAO,EAAE,IAAI,GAAG,CAAS;gBACvB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;gBAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;aACjD,CAAC;YACF,GAAG,EAAE,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,GAAG,EAAE,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SAC3C,CAAC;IACJ,CAAC;CAAA,EAAE,CAAC;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC7D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAC1D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;CAC3D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAW,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAErB;IACF,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG;IACrB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE;IACxB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG;CACrB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { ISeqSplitted } from '../../utils/macromolecule/types';
3
+ import { ISeqHelper } from '../seq-helper';
3
4
  export declare enum SCORE {
4
5
  IDENTITY = "identity",
5
6
  SIMILARITY = "similarity"
@@ -9,8 +10,9 @@ export declare enum SCORE {
9
10
  * @param {DG.Column<string>} col Sequences column to score. Must have Macromolecule semantic type.
10
11
  * @param {string} ref Reference sequence to score against.
11
12
  * @param {SCORE} scoring Scoring method.
13
+ * @param {ISeqHelper} seqHelper Helper for sequence operations.
12
14
  * @returns {DG.Column<number>} Scores column. */
13
- export declare function calculateScores(table: DG.DataFrame, col: DG.Column<string>, ref: string, scoring: SCORE): Promise<DG.Column<number>>;
15
+ export declare function calculateScores(table: DG.DataFrame, col: DG.Column<string>, ref: string, scoring: SCORE, seqHelper: ISeqHelper): Promise<DG.Column<number>>;
14
16
  /** Calculates identity scores as fraction of matching monomers on the same position.
15
17
  * @param {ISeqSplitted} reference Splitted reference sequence.
16
18
  * @param {DG.DataFrame} positionsDf Table which only contains position columns with semantic type Monomer.
@@ -20,5 +22,5 @@ export declare function calculateIdentity(reference: ISeqSplitted, positionsDf:
20
22
  * @param {ISeqSplitted} reference Splitted reference sequence.
21
23
  * @param {DG.DataFrame} positionsDf Table which only contains position columns with semantic type Monomer.
22
24
  * @return {DG.Column<number>} Scores column. */
23
- export declare function calculateSimilarity(reference: ISeqSplitted, positionsDf: DG.DataFrame): Promise<DG.Column<number>>;
25
+ export declare function calculateSimilarity(reference: ISeqSplitted, positionsDf: DG.DataFrame, seqHelper: ISeqHelper): Promise<DG.Column<number>>;
24
26
  //# sourceMappingURL=scoring.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["scoring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAK7D,oBAAY,KAAK;IACf,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AAED;;;;;iDAKiD;AACjD,wBAAsB,eAAe,CACnC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GACvE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAc5B;AAED;;;iDAGiD;AACjD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CA4BvG;AAED;;;gDAGgD;AAChD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,SAAS,GACjD,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAI5B"}
1
+ {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["scoring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,oBAAY,KAAK;IACf,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AAED;;;;;;iDAMiD;AACjD,wBAAsB,eAAe,CACnC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,GAC9F,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAc5B;AAED;;;iDAGiD;AACjD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CA4BvG;AAED;;;gDAGgD;AAChD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,GACxE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAI5B"}
@@ -1,7 +1,6 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { sequenceChemSimilarity } from '../../monomer-works/monomer-utils';
3
3
  import { splitAlignedSequences } from '../splitter';
4
- import { SeqHandler } from '../seq-handler';
5
4
  import { GAP_SYMBOL } from './consts';
6
5
  export var SCORE;
7
6
  (function (SCORE) {
@@ -13,15 +12,16 @@ export var SCORE;
13
12
  * @param {DG.Column<string>} col Sequences column to score. Must have Macromolecule semantic type.
14
13
  * @param {string} ref Reference sequence to score against.
15
14
  * @param {SCORE} scoring Scoring method.
15
+ * @param {ISeqHelper} seqHelper Helper for sequence operations.
16
16
  * @returns {DG.Column<number>} Scores column. */
17
- export async function calculateScores(table, col, ref, scoring) {
18
- const splitSeqDf = splitAlignedSequences(col);
19
- const srcSh = SeqHandler.forColumn(col);
17
+ export async function calculateScores(table, col, ref, scoring, seqHelper) {
18
+ const splitSeqDf = splitAlignedSequences(col, seqHelper);
19
+ const srcSh = seqHelper.getSeqHandler(col);
20
20
  const refCol = srcSh.getNewColumnFromList('ref', [ref]);
21
- const refUh = SeqHandler.forColumn(refCol);
21
+ const refUh = seqHelper.getSeqHandler(refCol);
22
22
  const refSplitted = refUh.getSplitted(0); // ref is at 0
23
23
  const scoresCol = scoring === SCORE.IDENTITY ? calculateIdentity(refSplitted, splitSeqDf) :
24
- scoring === SCORE.SIMILARITY ? await calculateSimilarity(refSplitted, splitSeqDf) : null;
24
+ scoring === SCORE.SIMILARITY ? await calculateSimilarity(refSplitted, splitSeqDf, seqHelper) : null;
25
25
  if (scoresCol === null)
26
26
  throw new Error(`In bio library: Unknown sequence scoring method: ${scoring}`);
27
27
  scoresCol.name = table.columns.getUnusedName(scoresCol.name);
@@ -62,9 +62,9 @@ export function calculateIdentity(reference, positionsDf) {
62
62
  * @param {ISeqSplitted} reference Splitted reference sequence.
63
63
  * @param {DG.DataFrame} positionsDf Table which only contains position columns with semantic type Monomer.
64
64
  * @return {DG.Column<number>} Scores column. */
65
- export async function calculateSimilarity(reference, positionsDf) {
65
+ export async function calculateSimilarity(reference, positionsDf, seqHelper) {
66
66
  const monomerColumns = positionsDf.columns.toList();
67
- const scoresCol = await sequenceChemSimilarity(monomerColumns, reference);
67
+ const scoresCol = await sequenceChemSimilarity(monomerColumns, reference, seqHelper);
68
68
  return scoresCol;
69
69
  }
70
70
  //# sourceMappingURL=scoring.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.js","sourceRoot":"","sources":["scoring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAN,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,8BAAqB,CAAA;IACrB,kCAAyB,CAAA;AAC3B,CAAC,EAHW,KAAK,KAAL,KAAK,QAGhB;AAED;;;;;iDAKiD;AACjD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAmB,EAAE,GAAsB,EAAE,GAAW,EAAE,OAAc;IAExE,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;IAExD,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QACzF,OAAO,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,IAAI,SAAS,KAAK,IAAI;QACpB,MAAM,IAAI,KAAK,CAAC,oDAAoD,OAAO,EAAE,CAAC,CAAC;IACjF,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;iDAGiD;AACjD,MAAM,UAAU,iBAAiB,CAAC,SAAuB,EAAE,WAAyB;IAClF,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,YAAY,GAAkB,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,uBAAuB,GAAa,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAa,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAElE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,EAAiB,CAAC;QAC1D,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACpF,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5E,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1D,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;QACnE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,aAAa,GAAW,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAI,aAAa,KAAK,uBAAuB,CAAC,MAAM,CAAC;gBACnD,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,kBAAkB,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC;IACnD,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;gDAGgD;AAChD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAuB,EAAE,WAAyB;IAElD,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAyB,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1E,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["scoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ import { MmDistanceFunctionsNames } from '@datagrok-libraries/ml/src/macromolecule-distance-functions';
3
+ import { ISeqSplitted, SeqColStats } from './types';
4
+ import { NOTATION } from './consts';
5
+ import { HelmType } from '../../helm/types';
6
+ import { CellRendererBackBase } from '../cell-renderer-back-base';
7
+ export declare const SeqTemps: {
8
+ /** Column's temp slot name for a SeqHandler object */
9
+ seqHandler: string;
10
+ notationProvider: string;
11
+ };
12
+ export type ConvertFunc = (src: string) => string;
13
+ export type JoinerFunc = (src: ISeqSplitted) => string;
14
+ export interface ISeqHandler {
15
+ get alphabet(): string;
16
+ get notation(): NOTATION;
17
+ get separator(): string | undefined;
18
+ get aligned(): string;
19
+ get units(): string;
20
+ get defaultBiotype(): HelmType;
21
+ get maxLength(): number;
22
+ get length(): number;
23
+ get defaultGapOriginal(): string;
24
+ get stats(): SeqColStats;
25
+ get joiner(): JoinerFunc;
26
+ get posList(): string[];
27
+ isFasta(): boolean;
28
+ isMsa(): boolean;
29
+ isHelm(): boolean;
30
+ isSeparator(): boolean;
31
+ getSplitted(rowIdx: number, limit?: number): ISeqSplitted;
32
+ getHelm(rowIdx: number, options?: any): Promise<DG.SemanticValue<string>>;
33
+ getAlphabetSize(): number;
34
+ getAlphabetIsMultichar(): boolean;
35
+ getNewColumnFromList(name: string, seqList: string[]): DG.Column<string>;
36
+ convert(tgtNotation: NOTATION, tgtSeparator?: string): DG.Column<string>;
37
+ convertHelmToFastaSeparator(srcSeq: string, tgtNotation: string, tgtSeparator?: string, tgtGapOriginal?: string): string;
38
+ getRegion(startIdx: number | null, endIdx: number | null, name: string): DG.Column<string>;
39
+ getJoiner(opts?: {
40
+ notation: NOTATION;
41
+ separator?: string;
42
+ }): JoinerFunc;
43
+ getDistanceFunctionName(): MmDistanceFunctionsNames;
44
+ getConverter(tgtUnits: NOTATION, tgtSeparator?: string): ConvertFunc;
45
+ getRendererBack(gridCol: DG.GridColumn | null, tableCol: DG.Column<string>): CellRendererBackBase<string>;
46
+ }
47
+ //# sourceMappingURL=seq-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seq-handler.d.ts","sourceRoot":"","sources":["seq-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,wBAAwB,EAAC,MAAM,6DAA6D,CAAC;AAErG,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AAClD,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ;IACnB,sDAAsD;;;CAGrD,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,QAAQ,IAAI,MAAM,CAAC;IACvB,IAAI,QAAQ,IAAI,QAAQ,CAAC;IACzB,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAC;IAEpC,IAAI,OAAO,IAAI,MAAM,CAAC;IACtB,IAAI,KAAK,IAAI,MAAM,CAAC;IACpB,IAAI,cAAc,IAAI,QAAQ,CAAC;IAC/B,IAAI,SAAS,IAAI,MAAM,CAAC;IACxB,IAAI,MAAM,IAAI,MAAM,CAAC;IACrB,IAAI,kBAAkB,IAAI,MAAM,CAAC;IACjC,IAAI,KAAK,IAAI,WAAW,CAAC;IACzB,IAAI,MAAM,IAAI,UAAU,CAAC;IAEzB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;IAExB,OAAO,IAAI,OAAO,CAAC;IACnB,KAAK,IAAI,OAAO,CAAC;IACjB,MAAM,IAAI,OAAO,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IAGvB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC1D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1E,eAAe,IAAI,MAAM,CAAC;IAC1B,sBAAsB,IAAI,OAAO,CAAC;IAClC,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzE,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC7D,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3F,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,CAAC;IAEzE,uBAAuB,IAAI,wBAAwB,CAAC;IACpD,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACrE,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;CAC3G"}