@datagrok/bio 2.15.0 → 2.15.1

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.0",
8
+ "version": "2.15.1",
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,7 +37,7 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@biowasm/aioli": "^3.1.0",
40
- "@datagrok-libraries/bio": "^5.42.14",
40
+ "@datagrok-libraries/bio": "^5.42.15",
41
41
  "@datagrok-libraries/chem-meta": "^1.2.5",
42
42
  "@datagrok-libraries/math": "^1.2.0",
43
43
  "@datagrok-libraries/ml": "^6.7.0",
@@ -52,17 +52,17 @@ category('detectorsBenchmark', () => {
52
52
  maxET: number, notation: NOTATION, alphabet: ALPHABET, length: number, count: number, separator?: string,
53
53
  ): Promise<number> {
54
54
  return await benchmark<DG.FuncCall, DG.Column>(maxET,
55
- async (): Promise<DG.FuncCall> => {
55
+ /* prepare */ async (): Promise<DG.FuncCall> => {
56
56
  const col: DG.Column = generate(notation, [...getAlphabet(alphabet)], length, count, separator);
57
57
  const funcCall: DG.FuncCall = detectFunc.prepare({col: col});
58
58
  // warm-up Bio
59
- await testDetector(funcCall);
59
+ testDetector(funcCall);
60
60
  return funcCall;
61
61
  },
62
- async (funcCall: DG.FuncCall): Promise<DG.Column> => {
62
+ /* test */ (funcCall: DG.FuncCall): DG.Column => { // sync call for stability
63
63
  return testDetector(funcCall);
64
64
  },
65
- (col: DG.Column) => {
65
+ /* check */ (col: DG.Column) => {
66
66
  checkDetectorRes(col, {
67
67
  semType: DG.SEMTYPE.MACROMOLECULE,
68
68
  notation: notation,
@@ -115,9 +115,8 @@ category('detectorsBenchmark', () => {
115
115
 
116
116
  type TgtType = { semType: string, notation: NOTATION, alphabet: ALPHABET, separator?: string };
117
117
 
118
- async function testDetector(funcCall: DG.FuncCall): Promise<DG.Column> {
119
- //const semType: string = await grok.functions.call('Bio:detectMacromolecule', {col: col});
120
- await funcCall.call();
118
+ function testDetector(funcCall: DG.FuncCall): DG.Column {
119
+ funcCall.callSync();
121
120
  const semType = funcCall.getOutputParamValue() as string;
122
121
 
123
122
  const col: DG.Column = funcCall.inputs.col as unknown as DG.Column;
@@ -137,34 +136,21 @@ category('detectorsBenchmark', () => {
137
136
 
138
137
  //Returns ET [ms] of test()
139
138
  async function benchmark<TData, TRes>(
140
- maxET: number, prepare: () => Promise<TData>, test: (data: TData) => Promise<TRes>, check: (res: TRes) => void,
139
+ maxET: number, prepare: () => Promise<TData>, test: (data: TData) => TRes, check: (res: TRes) => void,
141
140
  ): Promise<number> {
142
141
  const data: TData = await prepare();
143
142
 
144
- const tryCount = 60;
145
- const maxOutCount = 3; // 95%
146
- let outCount: number = 0;
147
- let outResET: number = 0;
148
- const resEtList: number[] = new Array<number>(tryCount);
149
- let resET: number = 0;
150
- for (let tryI = 0; tryI < 20; ++tryI) {
151
- const t1: number = Date.now();
152
- // console.profile();
153
- const res: TRes = await test(data);
154
- //console.profileEnd();
155
- const t2: number = Date.now();
156
-
157
- resET = resEtList[tryI] = t2 - t1;
158
- if (resET > maxET) {
159
- outCount++;
160
- outResET = Math.max(outResET, resET);
161
- }
143
+ const t1: number = Date.now();
144
+ // console.profile();
145
+ const res: TRes = test(data); // sync call for stability
146
+ //console.profileEnd();
147
+ const t2: number = Date.now();
162
148
 
163
- check(res);
164
- }
149
+ check(res);
165
150
 
166
- if (outCount > maxOutCount) {
167
- const errMsg = `ET ${outResET} ms is more than max allowed ${maxET} ms. ET: ${JSON.stringify(resEtList)}`;
151
+ const resET = t2 - t1;
152
+ if (resET > maxET) {
153
+ const errMsg = `ET ${resET} ms is more than max allowed ${maxET} ms.`;
168
154
  console.error(errMsg);
169
155
  throw new Error(errMsg);
170
156
  } else
@@ -3,11 +3,11 @@ import * as DG from 'datagrok-api/dg';
3
3
  import * as ui from 'datagrok-api/ui';
4
4
 
5
5
  import {test, after, before, category, expect} from '@datagrok-libraries/utils/src/test';
6
-
7
6
  import {getMonomerLibHelper, IMonomerLibHelper} from '@datagrok-libraries/bio/src/monomer-works/monomer-utils';
8
7
  import {
9
8
  getUserLibSettings, setUserLibSettings, setUserLibSettingsForTests
10
9
  } from '@datagrok-libraries/bio/src/monomer-works/lib-settings';
10
+ import {expectMonomerLib} from '@datagrok-libraries/bio/src/tests/monomer-lib-tests';
11
11
 
12
12
 
13
13
  category('monomerLibraries', () => {
@@ -41,9 +41,7 @@ category('monomerLibraries', () => {
41
41
  // Currently default monomer lib set is of all files at LIB_PATH (at least HELMCoreLibrary.json)
42
42
  const currentMonomerLib = monomerLibHelper.getMonomerLib();
43
43
  // HELMCoreLibrary.json checks
44
- expect(currentMonomerLib.getPolymerTypes().length, 2);
45
- expect(currentMonomerLib.getMonomerSymbolsByType('PEPTIDE').length, 324);
46
- expect(currentMonomerLib.getMonomerSymbolsByType('RNA').length, 383);
44
+ expectMonomerLib(currentMonomerLib);
47
45
  });
48
46
 
49
47
  test('empty', async () => {