@datagrok/bio 2.15.1 → 2.15.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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "name": "Aleksandr Tanas",
6
6
  "email": "atanas@datagrok.ai"
7
7
  },
8
- "version": "2.15.1",
8
+ "version": "2.15.3",
9
9
  "description": "Bioinformatics support (import/export of sequences, conversion, visualization, analysis). [See more](https://github.com/datagrok-ai/public/blob/master/packages/Bio/README.md) for details.",
10
10
  "repository": {
11
11
  "type": "git",
@@ -37,12 +37,12 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@biowasm/aioli": "^3.1.0",
40
- "@datagrok-libraries/bio": "^5.42.15",
40
+ "@datagrok-libraries/bio": "^5.43.1",
41
41
  "@datagrok-libraries/chem-meta": "^1.2.5",
42
42
  "@datagrok-libraries/math": "^1.2.0",
43
- "@datagrok-libraries/ml": "^6.7.0",
43
+ "@datagrok-libraries/ml": "^6.7.1",
44
44
  "@datagrok-libraries/tutorials": "^1.4.0",
45
- "@datagrok-libraries/utils": "^4.3.0",
45
+ "@datagrok-libraries/utils": "^4.3.3",
46
46
  "@webgpu/types": "^0.1.40",
47
47
  "ajv": "^8.12.0",
48
48
  "ajv-errors": "^3.0.0",
@@ -83,12 +83,12 @@
83
83
  "link-bio": "npm link @datagrok-libraries/bio",
84
84
  "link-ml": "npm link @datagrok-libraries/ml",
85
85
  "link-utils": "npm link @datagrok-libraries/utils",
86
- "link-all": "npm link @datagrok-libraries/chem-meta datagrok-api @datagrok-libraries/utils @datagrok-libraries/math @datagrok-libraries/ml @datagrok-libraries/bio @datagrok-libraries/tutorials",
86
+ "link-all": "npm link @datagrok-libraries/chem-meta datagrok-api @datagrok-libraries/math @datagrok-libraries/utils @datagrok-libraries/ml @datagrok-libraries/bio @datagrok-libraries/tutorials",
87
87
  "debug-sequences1": "webpack && grok publish",
88
88
  "release-sequences1": "webpack && grok publish --release",
89
89
  "build-sequences1": "webpack",
90
90
  "build": "webpack",
91
- "build-all": "npm --prefix ./../../libraries/chem-meta run build && npm --prefix ./../../js-api run build && npm --prefix ./../../libraries/utils run build && npm --prefix ./../../libraries/math run build && npm --prefix ./../../libraries/ml run build && npm --prefix ./../../libraries/bio run build && npm --prefix ./../../libraries/tutorials run build && npm run build",
91
+ "build-all": "npm --prefix ./../../libraries/chem-meta run build && npm --prefix ./../../js-api run build && npm --prefix ./../../libraries/math run build && npm --prefix ./../../libraries/utils run build && npm --prefix ./../../libraries/ml run build && npm --prefix ./../../libraries/bio run build && npm --prefix ./../../libraries/tutorials run build && npm run build",
92
92
  "debug-sequences1-local": "webpack && grok publish local",
93
93
  "release-sequences1-local": "webpack && grok publish local --release",
94
94
  "debug-sequences1-dev": "webpack && grok publish dev",
@@ -153,4 +153,4 @@
153
153
  }
154
154
  }
155
155
  }
156
- }
156
+ }
@@ -2,7 +2,7 @@ import * as grok from 'datagrok-api/grok';
2
2
  import * as ui from 'datagrok-api/ui';
3
3
  import * as DG from 'datagrok-api/dg';
4
4
 
5
- import {runTests, TestContext, tests} from '@datagrok-libraries/utils/src/test';
5
+ import {runTests, TestContext, tests, initAutoTests as initTests } from '@datagrok-libraries/utils/src/test';
6
6
 
7
7
  import './tests/_first-tests';
8
8
  import './tests/Palettes-test';
@@ -52,3 +52,8 @@ export async function test(category: string, test: string, testContext: TestCont
52
52
  const data = await runTests({category, test, testContext, stressTest});
53
53
  return DG.DataFrame.fromObjects(data)!;
54
54
  }
55
+
56
+ //name: initAutoTests
57
+ export async function initAutoTests() {
58
+ await initTests(_package, _package.getModule('package-test.js'));
59
+ }
@@ -63,5 +63,5 @@ category('PepSeA', () => {
63
63
  logger.error(errMsg, undefined, errStack);
64
64
  }
65
65
  expect(logger.errorList[0].message, pepseaErrorError);
66
- });
66
+ },{skipReason: 'GROK-16699'});
67
67
  });
@@ -4,7 +4,8 @@ import * as ui from 'datagrok-api/ui';
4
4
 
5
5
  import {PolymerType} from '@datagrok-libraries/bio/src/helm/types';
6
6
  import {ALPHABET, getPaletteByType, monomerToShort} from '@datagrok-libraries/bio/src/utils/macromolecule';
7
- import {TAGS as bioTAGS} from '@datagrok-libraries/bio/src/utils/macromolecule/consts';
7
+ import {TAGS as bioTAGS, } from '@datagrok-libraries/bio/src/utils/macromolecule/consts';
8
+ import {MONOMER_RENDERER_TAGS} from '@datagrok-libraries/bio/src/utils/cell-renderer';
8
9
  import {MonomerWorks} from '@datagrok-libraries/bio/src/monomer-works/monomer-works';
9
10
 
10
11
  import * as C from './constants';
@@ -92,7 +93,7 @@ export class MonomerCellRenderer extends DG.GridCellRenderer {
92
93
  ): void {
93
94
  if (gridCell.gridRow < 0) return;
94
95
  MonomerTooltipHandler.getOrCreate(gridCell.gridColumn);
95
-
96
+ const applyToBackground = gridCell.cell?.column && gridCell.cell.column.getTag(MONOMER_RENDERER_TAGS.applyToBackground) === 'true';
96
97
 
97
98
  g.font = `12px monospace`;
98
99
  g.textBaseline = 'middle';
@@ -103,11 +104,14 @@ export class MonomerCellRenderer extends DG.GridCellRenderer {
103
104
  if (!s)
104
105
  return;
105
106
  const color = palette.get(s);
106
-
107
- g.fillStyle = color;
108
107
  //cell width of monomer should dictate how many characters can be displayed
109
108
  // for width 40, 6 characters can be displayed (0.15 is 6 / 40)
110
109
  const maxChars = Math.max(2, Math.floor(w * 0.15));
110
+ g.fillStyle = color;
111
+ if (applyToBackground) {
112
+ g.fillRect(x, y, w, h);
113
+ g.fillStyle = DG.Color.toHtml(DG.Color.getContrastColor(DG.Color.fromHtml(color)));
114
+ }
111
115
  g.fillText(monomerToShort(s, maxChars), x + (w / 2), y + (h / 2), w);
112
116
  }
113
117
  }
@@ -907,6 +907,13 @@ function capSmiles(smiles: string, rgroups: RGroup[]) {
907
907
  }
908
908
 
909
909
  function monomerFromDfRow(dfRow: DG.Row): Monomer {
910
+ // hacky way for now, but meta object for now only supports key value pairs and not nested objects
911
+ const metaJSON = JSON.parse(dfRow.get(MONOMER_DF_COLUMN_NAMES.META) ?? '{}');
912
+ for (const key in metaJSON) {
913
+ if (typeof metaJSON[key] === 'object')
914
+ metaJSON[key] = JSON.stringify(metaJSON[key]);
915
+ }
916
+
910
917
  return {
911
918
  symbol: dfRow.get(MONOMER_DF_COLUMN_NAMES.SYMBOL),
912
919
  name: dfRow.get(MONOMER_DF_COLUMN_NAMES.NAME),
@@ -917,7 +924,7 @@ function monomerFromDfRow(dfRow: DG.Row): Monomer {
917
924
  naturalAnalog: dfRow.get(MONOMER_DF_COLUMN_NAMES.NATURAL_ANALOG),
918
925
  id: dfRow.get(MONOMER_DF_COLUMN_NAMES.ID),
919
926
  rgroups: JSON.parse(dfRow.get(MONOMER_DF_COLUMN_NAMES.R_GROUPS) ?? '[]'),
920
- meta: JSON.parse(dfRow.get(MONOMER_DF_COLUMN_NAMES.META) ?? '{}'),
927
+ meta: metaJSON,
921
928
  author: dfRow.get(MONOMER_DF_COLUMN_NAMES.AUTHOR),
922
929
  createDate: dfRow.get(MONOMER_DF_COLUMN_NAMES.CREATE_DATE),
923
930
  };
@@ -7,6 +7,7 @@ import {Subject} from 'rxjs';
7
7
 
8
8
  import {testEvent} from '@datagrok-libraries/utils/src/test';
9
9
  import {NOTATION, TAGS as bioTAGS, ALIGNMENT, ALPHABET} from '@datagrok-libraries/bio/src/utils/macromolecule';
10
+ import { fetchWrapper } from '@datagrok-libraries/utils/src/fetch-utils';
10
11
  import {ILogger} from '@datagrok-libraries/bio/src/utils/logger';
11
12
 
12
13
  import {checkForSingleSeqClusters} from './multiple-sequence-alignment';
@@ -79,7 +80,7 @@ export async function runPepsea(srcCol: DG.Column<string>, unUsedName: string,
79
80
 
80
81
  const alignedSequences: string[] = new Array(peptideCount);
81
82
  for (const body of bodies) { // getting aligned sequences for each cluster
82
- const alignedObject = await requestAlignedObjects(pepseaContainer.id, body, method, gapOpen, gapExtend, logger);
83
+ const alignedObject = await fetchWrapper(() => requestAlignedObjects(pepseaContainer.id, body, method, gapOpen, gapExtend, logger));
83
84
  const alignments = alignedObject.Alignment;
84
85
 
85
86
  for (const alignment of alignments) { // filling alignedSequencesCol