@datagrok/bio 2.0.33 → 2.1.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/dist/package-test.js +2529 -2828
- package/dist/package.js +2470 -2769
- package/package.json +2 -2
- package/src/package.ts +35 -129
- package/src/widgets/representations.ts +2 -3
- package/{test-Bio-3afbd4014fa1-15e7930e.html → test-Bio-3afbd4014fa1-8c5a0df5.html} +104 -104
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"name": "Leonid Stolbov",
|
|
6
6
|
"email": "lstolbov@datagrok.ai"
|
|
7
7
|
},
|
|
8
|
-
"version": "2.
|
|
8
|
+
"version": "2.1.1",
|
|
9
9
|
"description": "Bio is a [package](https://datagrok.ai/help/develop/develop#packages) for the [Datagrok](https://datagrok.ai) platform",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@biowasm/aioli": "^3.1.0",
|
|
17
|
-
"@datagrok-libraries/bio": "^5.
|
|
17
|
+
"@datagrok-libraries/bio": "^5.9.13",
|
|
18
18
|
"@datagrok-libraries/chem-meta": "1.0.1",
|
|
19
19
|
"@datagrok-libraries/ml": "^6.2.2",
|
|
20
20
|
"@datagrok-libraries/utils": "^1.14.1",
|
package/src/package.ts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import * as grok from 'datagrok-api/grok';
|
|
3
3
|
import * as ui from 'datagrok-api/ui';
|
|
4
4
|
import * as DG from 'datagrok-api/dg';
|
|
5
|
-
import * as bio from '@datagrok-libraries/bio';
|
|
6
5
|
|
|
7
6
|
export const _package = new DG.Package();
|
|
8
7
|
|
|
@@ -13,7 +12,7 @@ import {SequenceAlignment, Aligned} from './seq_align';
|
|
|
13
12
|
import {getEmbeddingColsNames, sequenceSpace, sequenceSpaceByFingerprints} from './analysis/sequence-space';
|
|
14
13
|
import {getActivityCliffs} from '@datagrok-libraries/ml/src/viewers/activity-cliffs';
|
|
15
14
|
import {createLinesGrid, createPropPanelElement, createTooltipElement, getChemSimilaritiesMarix, getSimilaritiesMarix} from './analysis/sequence-activity-cliffs';
|
|
16
|
-
import {createJsonMonomerLibFromSdf, encodeMonomers, getMolfilesFromSeq} from '@datagrok-libraries/bio/src/
|
|
15
|
+
import {createJsonMonomerLibFromSdf, encodeMonomers, getMolfilesFromSeq} from '@datagrok-libraries/bio/src/monomer-works/monomer-utils';
|
|
17
16
|
import {HELM_CORE_LIB_FILENAME} from '@datagrok-libraries/bio/src/utils/const';
|
|
18
17
|
import {getMacroMol} from './utils/atomic-works';
|
|
19
18
|
import {MacromoleculeSequenceCellRenderer} from './utils/cell-renderer';
|
|
@@ -21,7 +20,7 @@ import {convert} from './utils/convert';
|
|
|
21
20
|
import {getMacroMolColumnPropertyPanel, representationsWidget} from './widgets/representations';
|
|
22
21
|
import {MonomerFreqs, TAGS} from '@datagrok-libraries/bio/src/utils/macromolecule';
|
|
23
22
|
import {ALPHABET, NOTATION} from '@datagrok-libraries/bio/src/utils/macromolecule'
|
|
24
|
-
import {_toAtomicLevel} from '@datagrok-libraries/bio/src/
|
|
23
|
+
import {_toAtomicLevel} from '@datagrok-libraries/bio/src/monomer-works/to-atomic-level';
|
|
25
24
|
import {FastaFileHandler} from '@datagrok-libraries/bio/src/utils/fasta-handler';
|
|
26
25
|
import {removeEmptyStringRows} from '@datagrok-libraries/utils/src/dataframe-utils';
|
|
27
26
|
import {
|
|
@@ -39,80 +38,17 @@ import {saveAsFastaUI} from './utils/save-as-fasta';
|
|
|
39
38
|
import {BioSubstructureFilter} from './widgets/bio-substructure-filter';
|
|
40
39
|
import { getMonomericMols } from './calculations/monomerLevelMols';
|
|
41
40
|
import { delay } from '@datagrok-libraries/utils/src/test';
|
|
42
|
-
import {Observable, Subject} from 'rxjs';
|
|
41
|
+
import {from, Observable, Subject} from 'rxjs';
|
|
42
|
+
import {Monomer, IMonomerLib, MonomerWorks, MonomerLib, readLibrary,
|
|
43
|
+
SeqPalette, UnitsHandler, WebLogoViewer, getStats, splitterAsHelm} from '@datagrok-libraries/bio';
|
|
43
44
|
|
|
44
45
|
const STORAGE_NAME = 'Libraries';
|
|
45
|
-
const LIB_PATH = 'libraries
|
|
46
|
-
const expectedMonomerData = ['symbol', 'name', 'molfile', 'rgroups', 'polymerType', 'monomerType'];
|
|
46
|
+
const LIB_PATH = 'System:AppData/Bio/libraries';
|
|
47
47
|
|
|
48
48
|
let monomerLib: IMonomerLib | null = null;
|
|
49
49
|
export let hydrophobPalette: SeqPaletteCustom | null = null;
|
|
50
50
|
|
|
51
|
-
class
|
|
52
|
-
private _monomers: { [type: string]: { [name: string]: Monomer } } = {};
|
|
53
|
-
private _onChanged = new Subject<any>();
|
|
54
|
-
|
|
55
|
-
getMonomer(monomerType: string, monomerName: string): Monomer | null {
|
|
56
|
-
if (monomerType in this._monomers! && monomerName in this._monomers![monomerType])
|
|
57
|
-
return this._monomers![monomerType][monomerName];
|
|
58
|
-
else
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
getTypes(): string[] {
|
|
63
|
-
return Object.keys(this._monomers);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
getMonomersByType(type: string): {[symbol: string]: string} {
|
|
67
|
-
let res: {[symbol: string]: string} = {};
|
|
68
|
-
|
|
69
|
-
Object.keys(this._monomers[type]).forEach(monomerSymbol => {
|
|
70
|
-
res[monomerSymbol] = this._monomers[type][monomerSymbol].molfile;
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
return res;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
get onChanged(): Observable<any> {
|
|
77
|
-
return this._onChanged;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
public update(monomers: { [type: string]: { [name: string]: Monomer } }): void {
|
|
81
|
-
Object.keys(monomers).forEach(type => {
|
|
82
|
-
//could possibly rewrite -> TODO: check duplicated monomer symbol
|
|
83
|
-
|
|
84
|
-
if (!this.getTypes().includes(type))
|
|
85
|
-
this._monomers![type] = {};
|
|
86
|
-
|
|
87
|
-
Object.keys(monomers[type]).forEach(monomerName =>{
|
|
88
|
-
this._monomers[type][monomerName] = monomers[type][monomerName];
|
|
89
|
-
})
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
this._onChanged.next();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export type Monomer = {
|
|
97
|
-
symbol: string,
|
|
98
|
-
name: string,
|
|
99
|
-
molfile: string,
|
|
100
|
-
rgroups: {capGroupSmiles: string, alternateId: string, capGroupName: string, label: string }[],
|
|
101
|
-
polymerType: string,
|
|
102
|
-
monomerType: string,
|
|
103
|
-
data: {[property: string]: string}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
//expected types: HELM_AA, HELM_BASE, HELM_CHEM, HELM_LINKER, HELM_SUGAR
|
|
107
|
-
export interface IMonomerLib {
|
|
108
|
-
getMonomer(monomerType: string, monomerName: string): Monomer | null;
|
|
109
|
-
getMonomersByType(type: string): {[symbol: string]: string} | null;
|
|
110
|
-
getTypes(): string[];
|
|
111
|
-
update(monomers: { [type: string]: { [name: string]: Monomer } }): void;
|
|
112
|
-
get onChanged(): Observable<any>;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export class SeqPaletteCustom implements bio.SeqPalette {
|
|
51
|
+
export class SeqPaletteCustom implements SeqPalette {
|
|
116
52
|
private readonly _palette: { [m: string]: string };
|
|
117
53
|
constructor(palette: { [m: string]: string }) {
|
|
118
54
|
this._palette = palette;
|
|
@@ -131,7 +67,7 @@ export async function initBio() {
|
|
|
131
67
|
const module = await grok.functions.call('Chem:getRdKitModule');
|
|
132
68
|
|
|
133
69
|
|
|
134
|
-
const series = monomerLib!.
|
|
70
|
+
const series = monomerLib!.getMonomerMolsByType('PEPTIDE')!;
|
|
135
71
|
Object.keys(series).forEach(symbol => {
|
|
136
72
|
monomers.push(symbol);
|
|
137
73
|
const block = series[symbol].replaceAll('#R', 'O ');
|
|
@@ -154,69 +90,40 @@ export async function initBio() {
|
|
|
154
90
|
|
|
155
91
|
async function loadLibraries() {
|
|
156
92
|
let uploadedLibraries: string[] = Object.values(await grok.dapi.userDataStorage.get(STORAGE_NAME, true));
|
|
157
|
-
for (let i = 0; i <
|
|
93
|
+
for (let i = 0; i < uploadedLibraries.length; ++i)
|
|
158
94
|
await monomerManager(uploadedLibraries[i]);
|
|
159
95
|
}
|
|
160
96
|
|
|
161
97
|
//name: monomerManager
|
|
162
98
|
//input: string value
|
|
163
99
|
export async function monomerManager(value: string) {
|
|
164
|
-
let data: any[] = [];
|
|
165
|
-
let file;
|
|
166
|
-
let dfSdf;
|
|
167
|
-
if (value.endsWith('.sdf')) {
|
|
168
|
-
const funcList: DG.Func[] = DG.Func.find({package: 'Chem', name: 'importSdf'});
|
|
169
|
-
console.debug(`Helm: initHelm() funcList.length = ${funcList.length}`);
|
|
170
|
-
if (funcList.length === 1) {
|
|
171
|
-
file = await _package.files.readAsBytes(`${LIB_PATH}${value}`);
|
|
172
|
-
dfSdf = await grok.functions.call('Chem:importSdf', {bytes: file});
|
|
173
|
-
data = createJsonMonomerLibFromSdf(dfSdf[0]);
|
|
174
|
-
} else {
|
|
175
|
-
grok.shell.warning('Chem package is not installed');
|
|
176
|
-
}
|
|
177
|
-
} else {
|
|
178
|
-
const file = await _package.files.readAsText(`${LIB_PATH}${value}`);
|
|
179
|
-
data = JSON.parse(file);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
100
|
if (monomerLib == null)
|
|
183
|
-
monomerLib =
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
data.forEach(monomer => {
|
|
189
|
-
let monomerAdd: Monomer = {
|
|
190
|
-
'symbol': monomer['symbol'],
|
|
191
|
-
'name': monomer['name'],
|
|
192
|
-
'molfile': monomer['molfile'],
|
|
193
|
-
'rgroups': monomer['rgroups'],
|
|
194
|
-
'polymerType': monomer['polymerType'],
|
|
195
|
-
'monomerType': monomer['monomerType'],
|
|
196
|
-
'data': {}
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
Object.keys(monomer).forEach(prop => {
|
|
200
|
-
if (!expectedMonomerData.includes(prop))
|
|
201
|
-
monomerAdd.data[prop] = monomer[prop];
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
if (!types.includes(monomer['polymerType'])) {
|
|
205
|
-
monomers[monomer['polymerType']] = {};
|
|
206
|
-
types.push(monomer['polymerType']);
|
|
207
|
-
}
|
|
101
|
+
monomerLib = await readLibrary(LIB_PATH, value);
|
|
102
|
+
else {
|
|
103
|
+
monomerLib!.update(await readLibrary(LIB_PATH, value));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
208
106
|
|
|
209
|
-
|
|
210
|
-
|
|
107
|
+
//name: getBioLib
|
|
108
|
+
//output: object monomerLib
|
|
109
|
+
export function getBioLib(): IMonomerLib | null {
|
|
110
|
+
return monomerLib;
|
|
111
|
+
}
|
|
211
112
|
|
|
212
|
-
|
|
113
|
+
//name: manageFiles
|
|
114
|
+
export async function manageFiles() {
|
|
115
|
+
const a = ui.dialog({title: 'Manage files'})
|
|
116
|
+
//@ts-ignore
|
|
117
|
+
.add(ui.fileBrowser({path: 'System:AppData/Bio/libraries'}).root)
|
|
118
|
+
.addButton('OK', () => a.close())
|
|
119
|
+
.show();
|
|
213
120
|
}
|
|
214
121
|
|
|
215
122
|
//name: Manage Libraries
|
|
216
123
|
//tags: panel, widgets
|
|
217
|
-
//input: column
|
|
124
|
+
//input: column seqColumn {semType: Macromolecule}
|
|
218
125
|
//output: widget result
|
|
219
|
-
export async function libraryPanel(
|
|
126
|
+
export async function libraryPanel(seqColumn: DG.Column): Promise<DG.Widget> {
|
|
220
127
|
//@ts-ignore
|
|
221
128
|
let filesButton: HTMLButtonElement = ui.button('Manage', manageFiles);
|
|
222
129
|
let divInputs: HTMLDivElement = ui.div();
|
|
@@ -227,7 +134,6 @@ export async function libraryPanel(helmColumn: DG.Column): Promise<DG.Widget> {
|
|
|
227
134
|
divInputs.append(ui.boolInput(libraryName, true, async() => {
|
|
228
135
|
grok.dapi.userDataStorage.remove(STORAGE_NAME, libraryName, true);
|
|
229
136
|
await loadLibraries();
|
|
230
|
-
grok.shell.tv.grid.invalidate();
|
|
231
137
|
}).root);
|
|
232
138
|
}
|
|
233
139
|
let unusedLibraries: string[] = librariesList.filter(x => !uploadedLibraries.includes(x));
|
|
@@ -295,7 +201,7 @@ export function checkInputColumn(
|
|
|
295
201
|
let res: boolean = true;
|
|
296
202
|
let msg: string = '';
|
|
297
203
|
|
|
298
|
-
const uh = new
|
|
204
|
+
const uh = new UnitsHandler(col);
|
|
299
205
|
if (col.semType !== DG.SEMTYPE.MACROMOLECULE) {
|
|
300
206
|
grok.shell.warning(name + ' analysis is allowed for Macromolecules semantic type');
|
|
301
207
|
res = false;
|
|
@@ -345,7 +251,7 @@ export function sequenceAlignment(alignType: string, alignTable: string, gap: nu
|
|
|
345
251
|
//tags: viewer, panel
|
|
346
252
|
//output: viewer result
|
|
347
253
|
export function webLogoViewer() {
|
|
348
|
-
return new
|
|
254
|
+
return new WebLogoViewer();
|
|
349
255
|
}
|
|
350
256
|
|
|
351
257
|
//name: VdRegions
|
|
@@ -525,7 +431,7 @@ export async function compositionAnalysis(): Promise<void> {
|
|
|
525
431
|
if (col.semType != DG.SEMTYPE.MACROMOLECULE)
|
|
526
432
|
return false;
|
|
527
433
|
|
|
528
|
-
const colUH = new
|
|
434
|
+
const colUH = new UnitsHandler(col);
|
|
529
435
|
// TODO: prevent for cyclic, branched or multiple chains in Helm
|
|
530
436
|
return true;
|
|
531
437
|
});
|
|
@@ -544,7 +450,7 @@ export async function compositionAnalysis(): Promise<void> {
|
|
|
544
450
|
return;
|
|
545
451
|
} else if (colList.length > 1) {
|
|
546
452
|
const colListNames: string [] = colList.map((col) => col.name);
|
|
547
|
-
const selectedCol = colList.find((c) => { return (new
|
|
453
|
+
const selectedCol = colList.find((c) => { return (new UnitsHandler(c)).isMsa(); });
|
|
548
454
|
const colInput: DG.InputBase = ui.choiceInput(
|
|
549
455
|
'Column', selectedCol ? selectedCol.name : colListNames[0], colListNames);
|
|
550
456
|
ui.dialog({
|
|
@@ -596,7 +502,7 @@ export async function peptideMolecule(macroMolecule: DG.Cell): Promise<DG.Widget
|
|
|
596
502
|
//input: string fileContent
|
|
597
503
|
//output: list tables
|
|
598
504
|
export function importFasta(fileContent: string): DG.DataFrame [] {
|
|
599
|
-
const ffh = new
|
|
505
|
+
const ffh = new FastaFileHandler(fileContent);
|
|
600
506
|
return ffh.importFasta();
|
|
601
507
|
}
|
|
602
508
|
|
|
@@ -671,7 +577,7 @@ export async function testDetectMacromolecule(path: string): Promise<DG.DataFram
|
|
|
671
577
|
//tags: panel, bio
|
|
672
578
|
//input: column col {semType: Macromolecule}
|
|
673
579
|
export function splitToMonomers(col: DG.Column<string>): void {
|
|
674
|
-
if (!col.getTag(
|
|
580
|
+
if (!col.getTag(TAGS.aligned).includes(C.MSA))
|
|
675
581
|
return grok.shell.error('Splitting is applicable only for aligned sequences');
|
|
676
582
|
|
|
677
583
|
const tempDf = splitAlignedSequences(col);
|
|
@@ -688,7 +594,7 @@ export function splitToMonomers(col: DG.Column<string>): void {
|
|
|
688
594
|
//name: Bio: getHelmMonomers
|
|
689
595
|
//input: column sequence {semType: Macromolecule}
|
|
690
596
|
export function getHelmMonomers(sequence: DG.Column<string>): string[] {
|
|
691
|
-
const stats =
|
|
597
|
+
const stats = getStats(sequence, 1, splitterAsHelm);
|
|
692
598
|
return Object.keys(stats.freq);
|
|
693
599
|
}
|
|
694
600
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
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
|
-
import {getMolfilesFromSingleSeq} from '@datagrok-libraries/bio/src/
|
|
4
|
+
import {getMolfilesFromSingleSeq} from '@datagrok-libraries/bio/src/monomer-works/monomer-utils';
|
|
5
5
|
import {HELM_CORE_LIB_FILENAME} from '@datagrok-libraries/bio/src/utils/const';
|
|
6
|
-
import {getMacroMol} from '@datagrok-libraries/bio/src/utils/atomic-works';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* @export
|
|
@@ -79,7 +78,7 @@ export async function representationsWidget(macroMolecule: DG.Cell, monomersLibO
|
|
|
79
78
|
try {
|
|
80
79
|
try {
|
|
81
80
|
const atomicCodes = getMolfilesFromSingleSeq(macroMolecule, monomersLibObject);
|
|
82
|
-
const result = await getMacroMol(atomicCodes!);
|
|
81
|
+
const result = ''//await getMacroMol(atomicCodes!);
|
|
83
82
|
const molBlock2D = result[0];
|
|
84
83
|
molBlock3D = (await grok.functions.call('Bio:Embed', {molBlock2D})) as unknown as string;
|
|
85
84
|
} catch (e) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<html><head><meta charset="utf-8"/><title>Bio Test Report. Datagrok version datagrok/datagrok:latest SHA=3afbd4014fa1. Commit
|
|
1
|
+
<html><head><meta charset="utf-8"/><title>Bio Test Report. Datagrok version datagrok/datagrok:latest SHA=3afbd4014fa1. Commit 8c5a0df5.</title><style type="text/css">html,
|
|
2
2
|
body {
|
|
3
3
|
font-family: Arial, Helvetica, sans-serif;
|
|
4
4
|
font-size: 1rem;
|
|
@@ -229,17 +229,17 @@ header {
|
|
|
229
229
|
font-size: 1rem;
|
|
230
230
|
padding: 0 0.5rem;
|
|
231
231
|
}
|
|
232
|
-
</style></head><body><div id="jesthtml-content"><header><h1 id="title">Bio Test Report. Datagrok version datagrok/datagrok:latest SHA=3afbd4014fa1. Commit
|
|
232
|
+
</style></head><body><div id="jesthtml-content"><header><h1 id="title">Bio Test Report. Datagrok version datagrok/datagrok:latest SHA=3afbd4014fa1. Commit 8c5a0df5.</h1></header><div id="metadata-container"><div id="timestamp">Started: 2022-11-08 13:09:19</div><div id="summary"><div id="suite-summary"><div class="summary-total">Suites (1)</div><div class="summary-passed summary-empty">0 passed</div><div class="summary-failed">1 failed</div><div class="summary-pending summary-empty">0 pending</div></div><div id="test-summary"><div class="summary-total">Tests (1)</div><div class="summary-passed summary-empty">0 passed</div><div class="summary-failed">1 failed</div><div class="summary-pending summary-empty">0 pending</div></div></div></div><div id="suite-1" class="suite-container"><div class="suite-info"><div class="suite-path">/home/runner/work/public/public/packages/Bio/src/__jest__/remote.test.ts</div><div class="suite-time warn">28.64s</div></div><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename"> </div><div class="test-title">TEST</div><div class="test-status">failed</div><div class="test-duration">19.009s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: Test result : Failed : 180 : Bio.splitters.splitToMonomers : TypeError: Cannot read properties of undefined (reading 'push')
|
|
233
233
|
Test result : Failed : 0 : Bio.splitters.init : TypeError: Cannot read properties of undefined (reading 'forEach')
|
|
234
|
-
Test result : Failed : 0 : Bio.splitters.init : TypeError: Cannot read properties of
|
|
235
|
-
Test result : Failed :
|
|
236
|
-
Test result : Failed :
|
|
237
|
-
Test result : Failed :
|
|
238
|
-
Test result : Failed :
|
|
239
|
-
Test result : Failed :
|
|
240
|
-
Test result : Failed :
|
|
234
|
+
Test result : Failed : 0 : Bio.splitters.init : TypeError: Cannot read properties of null (reading 'getMonomerMolsByType')
|
|
235
|
+
Test result : Failed : 311 : Bio.renderers.rendererMacromoleculeFasta : TypeError: Cannot read properties of undefined (reading 'push')
|
|
236
|
+
Test result : Failed : 184 : Bio.renderers.rendererMacromoleculeSeparator : TypeError: Cannot read properties of undefined (reading 'push')
|
|
237
|
+
Test result : Failed : 54 : Bio.renderers.rendererMacromoleculeDifference : TypeError: Cannot read properties of undefined (reading 'push')
|
|
238
|
+
Test result : Failed : 311 : Bio.renderers.afterMsa : TypeError: Cannot read properties of undefined (reading 'push')
|
|
239
|
+
Test result : Failed : 186 : Bio.renderers.afterConvert : TypeError: Cannot read properties of undefined (reading 'push')
|
|
240
|
+
Test result : Failed : 58 : Bio.renderers.selectRendererBySemType : TypeError: Cannot read properties of undefined (reading 'push')
|
|
241
241
|
Test result : Failed : 0 : Bio.renderers.init : TypeError: Cannot read properties of undefined (reading 'forEach')
|
|
242
|
-
Test result : Failed : 0 : Bio.renderers.init : TypeError: Cannot read properties of
|
|
242
|
+
Test result : Failed : 0 : Bio.renderers.init : TypeError: Cannot read properties of null (reading 'getMonomerMolsByType')
|
|
243
243
|
|
|
244
244
|
at /home/runner/work/public/public/packages/Bio/src/__jest__/remote.test.ts:70:20
|
|
245
245
|
at Generator.next (<anonymous>)
|
|
@@ -262,128 +262,128 @@ Test result : Failed : 0 : Bio.renderers.init : TypeError: Cannot read propertie
|
|
|
262
262
|
at processTicksAndRejections (internal/process/task_queues.js:97:5)</pre><pre class="suite-consolelog-item-message">Test result : Success : 0 : Bio.Palettes.testPaletteN : OK
|
|
263
263
|
Test result : Success : 1 : Bio.Palettes.testPaletteAA : OK
|
|
264
264
|
Test result : Success : 0 : Bio.Palettes.testPalettePtMe : OK
|
|
265
|
-
Test result : Success :
|
|
266
|
-
Test result : Success :
|
|
267
|
-
Test result : Success :
|
|
268
|
-
Test result : Success :
|
|
269
|
-
Test result : Success :
|
|
270
|
-
Test result : Success :
|
|
271
|
-
Test result : Success :
|
|
272
|
-
Test result : Success :
|
|
273
|
-
Test result : Success :
|
|
274
|
-
Test result : Success :
|
|
275
|
-
Test result : Success :
|
|
276
|
-
Test result : Success :
|
|
277
|
-
Test result : Success :
|
|
278
|
-
Test result : Success :
|
|
279
|
-
Test result : Success :
|
|
280
|
-
Test result : Success :
|
|
281
|
-
Test result : Success :
|
|
282
|
-
Test result : Success :
|
|
265
|
+
Test result : Success : 83 : Bio.detectors.NegativeEmpty : OK
|
|
266
|
+
Test result : Success : 15 : Bio.detectors.Negative1 : OK
|
|
267
|
+
Test result : Success : 27 : Bio.detectors.Negative2 : OK
|
|
268
|
+
Test result : Success : 18 : Bio.detectors.Negative3 : OK
|
|
269
|
+
Test result : Success : 372 : Bio.detectors.NegativeSmiles : OK
|
|
270
|
+
Test result : Success : 27 : Bio.detectors.Dna1 : OK
|
|
271
|
+
Test result : Success : 16 : Bio.detectors.Rna1 : OK
|
|
272
|
+
Test result : Success : 8 : Bio.detectors.AA1 : OK
|
|
273
|
+
Test result : Success : 16 : Bio.detectors.MsaDna1 : OK
|
|
274
|
+
Test result : Success : 13 : Bio.detectors.MsaAA1 : OK
|
|
275
|
+
Test result : Success : 28 : Bio.detectors.SepDna : OK
|
|
276
|
+
Test result : Success : 24 : Bio.detectors.SepRna : OK
|
|
277
|
+
Test result : Success : 26 : Bio.detectors.SepPt : OK
|
|
278
|
+
Test result : Success : 9 : Bio.detectors.SepUn1 : OK
|
|
279
|
+
Test result : Success : 7 : Bio.detectors.SepUn2 : OK
|
|
280
|
+
Test result : Success : 19 : Bio.detectors.SepMsaN1 : OK
|
|
281
|
+
Test result : Success : 425 : Bio.detectors.SamplesFastaCsvPt : OK
|
|
282
|
+
Test result : Success : 4 : Bio.detectors.SamplesFastaCsvNegativeEntry : OK
|
|
283
283
|
Test result : Success : 16 : Bio.detectors.SamplesFastaCsvNegativeLength : OK
|
|
284
|
-
Test result : Success :
|
|
285
|
-
Test result : Success :
|
|
286
|
-
Test result : Success :
|
|
287
|
-
Test result : Success :
|
|
288
|
-
Test result : Success :
|
|
289
|
-
Test result : Success :
|
|
290
|
-
Test result : Success :
|
|
291
|
-
Test result : Success :
|
|
292
|
-
Test result : Success :
|
|
293
|
-
Test result : Success :
|
|
294
|
-
Test result : Success :
|
|
295
|
-
Test result : Success :
|
|
296
|
-
Test result : Success :
|
|
297
|
-
Test result : Success :
|
|
298
|
-
Test result : Success :
|
|
299
|
-
Test result : Success :
|
|
300
|
-
Test result : Success :
|
|
301
|
-
Test result : Success :
|
|
302
|
-
Test result : Success :
|
|
303
|
-
Test result : Success :
|
|
304
|
-
Test result : Success :
|
|
305
|
-
Test result : Success :
|
|
306
|
-
Test result : Success :
|
|
307
|
-
Test result : Success :
|
|
284
|
+
Test result : Success : 78 : Bio.detectors.SamplesFastaCsvNegativeUniProtKB : OK
|
|
285
|
+
Test result : Success : 195 : Bio.detectors.SamplesFastaFastaPt : OK
|
|
286
|
+
Test result : Success : 636 : Bio.detectors.samplesPeptidesComplexNegativeID : OK
|
|
287
|
+
Test result : Success : 7 : Bio.detectors.SamplesPeptidesComplexNegativeMeasured : OK
|
|
288
|
+
Test result : Success : 94 : Bio.detectors.SamplesPeptidesComplexNegativeValue : OK
|
|
289
|
+
Test result : Success : 189 : Bio.detectors.samplesMsaComplexUn : OK
|
|
290
|
+
Test result : Success : 39 : Bio.detectors.samplesMsaComplexNegativeActivity : OK
|
|
291
|
+
Test result : Success : 128 : Bio.detectors.samplesIdCsvNegativeID : OK
|
|
292
|
+
Test result : Success : 142 : Bio.detectors.samplesSarSmallCsvNegativeSmiles : OK
|
|
293
|
+
Test result : Success : 140 : Bio.detectors.samplesHelmCsvHELM : OK
|
|
294
|
+
Test result : Success : 5 : Bio.detectors.samplesHelmCsvNegativeActivity : OK
|
|
295
|
+
Test result : Success : 85 : Bio.detectors.samplesTestHelmNegativeID : OK
|
|
296
|
+
Test result : Success : 4 : Bio.detectors.samplesTestHelmNegativeTestType : OK
|
|
297
|
+
Test result : Success : 4 : Bio.detectors.samplesTestHelmPositiveHelmString : OK
|
|
298
|
+
Test result : Success : 3 : Bio.detectors.samplesTestHelmNegativeValid : OK
|
|
299
|
+
Test result : Success : 4 : Bio.detectors.samplesTestHelmNegativeMolWeight : OK
|
|
300
|
+
Test result : Success : 4 : Bio.detectors.samplesTestHelmNegativeMolFormula : OK
|
|
301
|
+
Test result : Success : 4 : Bio.detectors.samplesTestHelmNegativeSmiles : OK
|
|
302
|
+
Test result : Success : 459 : Bio.detectors.samplesTestDemogNegativeAll : OK
|
|
303
|
+
Test result : Success : 214 : Bio.detectors.samplesTestSmiles2NegativeSmiles : OK
|
|
304
|
+
Test result : Success : 122 : Bio.detectors.samplesTestActivityCliffsNegativeSmiles : OK
|
|
305
|
+
Test result : Success : 90 : Bio.detectors.samplesFastaPtPosSequence : OK
|
|
306
|
+
Test result : Success : 102 : Bio.detectors.samplesTestCerealNegativeCerealName : OK
|
|
307
|
+
Test result : Success : 136 : Bio.detectors.samplesTestSpgi100NegativeStereoCategory : OK
|
|
308
308
|
Test result : Success : 5 : Bio.detectors.samplesTestSpgi100NegativeScaffoldNames : OK
|
|
309
|
-
Test result : Success :
|
|
310
|
-
Test result : Success :
|
|
311
|
-
Test result : Success :
|
|
312
|
-
Test result : Success :
|
|
313
|
-
Test result : Success :
|
|
314
|
-
Test result : Success :
|
|
315
|
-
Test result : Success :
|
|
316
|
-
Test result : Success :
|
|
317
|
-
Test result : Success :
|
|
318
|
-
Test result : Success :
|
|
319
|
-
Test result : Success :
|
|
320
|
-
Test result : Success :
|
|
321
|
-
Test result : Success :
|
|
309
|
+
Test result : Success : 7 : Bio.detectors.samplesTestSpgi100NegativePrimaryScaffoldName : OK
|
|
310
|
+
Test result : Success : 4 : Bio.detectors.samplesTestSpgi100NegativeSampleName : OK
|
|
311
|
+
Test result : Success : 128 : Bio.detectors.samplesTestUnichemSourcesNegativeSrcUrl : OK
|
|
312
|
+
Test result : Success : 3 : Bio.detectors.samplesTestUnichemSourcesNegativeBaseIdUrl : OK
|
|
313
|
+
Test result : Success : 106 : Bio.detectors.samplesTestDmvOfficesNegativeOfficeName : OK
|
|
314
|
+
Test result : Success : 5 : Bio.detectors.samplesTestDmvOfficesNegativeCity : OK
|
|
315
|
+
Test result : Success : 116 : Bio.detectors.samplesTestAlertCollectionNegativeSmarts : OK
|
|
316
|
+
Test result : Success : 1104 : Bio.MSA.isCorrect : OK
|
|
317
|
+
Test result : Success : 134 : Bio.MSA.isCorrectLong : OK
|
|
318
|
+
Test result : Success : 920 : Bio.sequenceSpace.sequenceSpaceOpens : OK
|
|
319
|
+
Test result : Success : 498 : Bio.sequenceSpace.sequenceSpaceWithEmptyRows : OK
|
|
320
|
+
Test result : Success : 730 : Bio.activityCliffs.activityCliffsOpens : OK
|
|
321
|
+
Test result : Success : 793 : Bio.activityCliffs.activityCliffsWithEmptyRows : OK
|
|
322
322
|
Test result : Success : 1 : Bio.splitters.fastaMulti : OK
|
|
323
323
|
Test result : Success : 1 : Bio.splitters.helm1 : OK
|
|
324
324
|
Test result : Success : 0 : Bio.splitters.helm2 : OK
|
|
325
|
-
Test result : Success :
|
|
325
|
+
Test result : Success : 0 : Bio.splitters.helm3-multichar : OK
|
|
326
326
|
Test result : Success : 0 : Bio.splitters.testHelm1 : OK
|
|
327
327
|
Test result : Success : 1 : Bio.splitters.testHelm2 : OK
|
|
328
|
-
Test result : Success :
|
|
328
|
+
Test result : Success : 1 : Bio.splitters.testHelm3 : OK
|
|
329
329
|
Test result : Success : 1 : Bio.splitters.getHelmMonomers : OK
|
|
330
|
-
Test result : Success :
|
|
331
|
-
Test result : Success :
|
|
330
|
+
Test result : Success : 70 : Bio.renderers.long sequence performance : OK
|
|
331
|
+
Test result : Success : 615 : Bio.renderers.many sequence performance : OK
|
|
332
332
|
Test result : Success : 0 : Bio.renderers.setRendererManually : GROK-11212
|
|
333
|
-
Test result : Success :
|
|
334
|
-
Test result : Success :
|
|
335
|
-
Test result : Success :
|
|
336
|
-
Test result : Success :
|
|
333
|
+
Test result : Success : 4 : Bio.converters.testFastaPtToSeparator : OK
|
|
334
|
+
Test result : Success : 3 : Bio.converters.testFastaDnaToSeparator : OK
|
|
335
|
+
Test result : Success : 2 : Bio.converters.testFastaRnaToSeparator : OK
|
|
336
|
+
Test result : Success : 3 : Bio.converters.testFastaGapsToSeparator : OK
|
|
337
337
|
Test result : Success : 2 : Bio.converters.testFastaPtToHelm : OK
|
|
338
|
-
Test result : Success :
|
|
338
|
+
Test result : Success : 1 : Bio.converters.testFastaDnaToHelm : OK
|
|
339
339
|
Test result : Success : 2 : Bio.converters.testFastaRnaToHelm : OK
|
|
340
340
|
Test result : Success : 1 : Bio.converters.testFastaGapsToHelm : OK
|
|
341
|
-
Test result : Success :
|
|
342
|
-
Test result : Success :
|
|
341
|
+
Test result : Success : 1 : Bio.converters.testSeparatorPtToFasta : OK
|
|
342
|
+
Test result : Success : 0 : Bio.converters.testSeparatorDnaToFasta : OK
|
|
343
343
|
Test result : Success : 1 : Bio.converters.testSeparatorRnaToFasta : OK
|
|
344
344
|
Test result : Success : 0 : Bio.converters.testSeparatorGapsToFasta : OK
|
|
345
345
|
Test result : Success : 0 : Bio.converters.testSeparatorPtToHelm : OK
|
|
346
|
-
Test result : Success :
|
|
346
|
+
Test result : Success : 0 : Bio.converters.testSeparatorDnaToHelm : OK
|
|
347
347
|
Test result : Success : 0 : Bio.converters.testSeparatorRnaToHelm : OK
|
|
348
|
-
Test result : Success :
|
|
349
|
-
Test result : Success :
|
|
350
|
-
Test result : Success :
|
|
351
|
-
Test result : Success :
|
|
348
|
+
Test result : Success : 1 : Bio.converters.testSeparatorGapsToHelm : OK
|
|
349
|
+
Test result : Success : 0 : Bio.converters.testHelmDnaToFasta : OK
|
|
350
|
+
Test result : Success : 0 : Bio.converters.testHelmRnaToFasta : OK
|
|
351
|
+
Test result : Success : 0 : Bio.converters.testHelmPtToFasta : OK
|
|
352
352
|
Test result : Success : 0 : Bio.converters.testHelmDnaToSeparator : OK
|
|
353
|
-
Test result : Success :
|
|
354
|
-
Test result : Success :
|
|
355
|
-
Test result : Success :
|
|
353
|
+
Test result : Success : 0 : Bio.converters.testHelmRnaToSeparator : OK
|
|
354
|
+
Test result : Success : 1 : Bio.converters.testHelmPtToSeparator : OK
|
|
355
|
+
Test result : Success : 1 : Bio.converters.testHelmLoneRibose : OK
|
|
356
356
|
Test result : Success : 2 : Bio.converters.testHelmLoneDeoxyribose : OK
|
|
357
|
-
Test result : Success :
|
|
358
|
-
Test result : Success :
|
|
359
|
-
Test result : Success :
|
|
357
|
+
Test result : Success : 1 : Bio.converters.testHelmLonePhosphorus : OK
|
|
358
|
+
Test result : Success : 1 : Bio.fastaFileHandler.testNormalFormatting : OK
|
|
359
|
+
Test result : Success : 0 : Bio.fastaFileHandler.testExtraSpaces : OK
|
|
360
360
|
Test result : Success : 0 : Bio.fastaFileHandler.testExtraNewlines : OK
|
|
361
|
-
Test result : Success :
|
|
361
|
+
Test result : Success : 0 : Bio.fastaExport.wrapSequenceSingle : OK
|
|
362
362
|
Test result : Success : 0 : Bio.fastaExport.wrapSequenceMulti : OK
|
|
363
|
-
Test result : Success :
|
|
363
|
+
Test result : Success : 1 : Bio.fastaExport.saveAsFastaTest1 : OK
|
|
364
364
|
Test result : Success : 1 : Bio.fastaExport.saveAsFastaTest2 : OK
|
|
365
|
-
Test result : Success :
|
|
365
|
+
Test result : Success : 1 : Bio.bio.testGetStatsHelm1 : OK
|
|
366
366
|
Test result : Success : 1 : Bio.bio.testGetStatsN1 : OK
|
|
367
|
-
Test result : Success :
|
|
367
|
+
Test result : Success : 0 : Bio.bio.testGetAlphabetSimilarity : OK
|
|
368
368
|
Test result : Success : 1 : Bio.bio.testPickupPaletteN1 : OK
|
|
369
|
-
Test result : Success :
|
|
369
|
+
Test result : Success : 1 : Bio.bio.testPickupPaletteN1e : OK
|
|
370
370
|
Test result : Success : 1 : Bio.bio.testPickupPaletteAA1 : OK
|
|
371
|
-
Test result : Success :
|
|
371
|
+
Test result : Success : 1 : Bio.bio.testPickupPaletteX : OK
|
|
372
372
|
Test result : Success : 0 : Bio.WebLogo.monomerToShort.longMonomerSingle : OK
|
|
373
373
|
Test result : Success : 0 : Bio.WebLogo.monomerToShort.longMonomerShort : OK
|
|
374
|
-
Test result : Success :
|
|
374
|
+
Test result : Success : 1 : Bio.WebLogo.monomerToShort.longMonomerLong56 : OK
|
|
375
375
|
Test result : Success : 0 : Bio.WebLogo.monomerToShort.longMonomerComplexFirstPartShort : OK
|
|
376
|
-
Test result : Success :
|
|
377
|
-
Test result : Success :
|
|
378
|
-
Test result : Success :
|
|
379
|
-
Test result : Success :
|
|
376
|
+
Test result : Success : 0 : Bio.WebLogo.monomerToShort.longMonomerComplexFirstPartLong56 : OK
|
|
377
|
+
Test result : Success : 92 : Bio.WebLogo-positions.allPositions : OK
|
|
378
|
+
Test result : Success : 73 : Bio.WebLogo-positions.positions with shrinkEmptyTail option true (filterd) : OK
|
|
379
|
+
Test result : Success : 77 : Bio.WebLogo-positions.positions with skipEmptyPositions option : OK
|
|
380
380
|
Test result : Success : 3 : Bio.checkInputColumn.testMsaPos : OK
|
|
381
381
|
Test result : Success : 1 : Bio.checkInputColumn.testMsaNegHelm : OK
|
|
382
382
|
Test result : Success : 1 : Bio.checkInputColumn.testMsaNegUN : OK
|
|
383
|
-
Test result : Success :
|
|
384
|
-
Test result : Success :
|
|
385
|
-
Test result : Success :
|
|
386
|
-
Test result : Success :
|
|
387
|
-
Test result : Success :
|
|
388
|
-
Test result : Success :
|
|
383
|
+
Test result : Success : 0 : Bio.checkInputColumn.testGetActionFunctionMeta : OK
|
|
384
|
+
Test result : Success : 360 : Bio.similarity/diversity.similaritySearchViewer : OK
|
|
385
|
+
Test result : Success : 214 : Bio.similarity/diversity.diversitySearchViewer : OK
|
|
386
|
+
Test result : Success : 190 : Bio.substructureFilters.fasta : OK
|
|
387
|
+
Test result : Success : 394 : Bio.substructureFilters.separator : OK
|
|
388
|
+
Test result : Success : 1950 : Bio.substructureFilters.helm : OK
|
|
389
389
|
</pre></div></div></div></div></body></html>
|