@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.
|
|
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.
|
|
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
|
-
|
|
59
|
+
testDetector(funcCall);
|
|
60
60
|
return funcCall;
|
|
61
61
|
},
|
|
62
|
-
|
|
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
|
-
|
|
119
|
-
|
|
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) =>
|
|
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
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
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
|
-
|
|
164
|
-
}
|
|
149
|
+
check(res);
|
|
165
150
|
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
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 () => {
|