@datagrok/bio 2.4.46 → 2.4.48
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/css/composition-analysis.css +16 -0
- package/dist/package-test.js +1 -1
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/package.json +2 -2
- package/scripts/sequence_generator.py +8 -0
- package/src/package.ts +10 -1
- package/src/tests/WebLogo-positions-test.ts +7 -7
- package/src/viewers/web-logo-viewer.ts +382 -273
- package/src/widgets/composition-analysis-widget.ts +62 -0
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"name": "Leonid Stolbov",
|
|
6
6
|
"email": "lstolbov@datagrok.ai"
|
|
7
7
|
},
|
|
8
|
-
"version": "2.4.
|
|
8
|
+
"version": "2.4.48",
|
|
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",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@biowasm/aioli": "^3.1.0",
|
|
25
|
-
"@datagrok-libraries/bio": "^5.32.
|
|
25
|
+
"@datagrok-libraries/bio": "^5.32.5",
|
|
26
26
|
"@datagrok-libraries/chem-meta": "^1.0.1",
|
|
27
27
|
"@datagrok-libraries/ml": "^6.3.39",
|
|
28
28
|
"@datagrok-libraries/tutorials": "^1.3.2",
|
|
@@ -16,6 +16,14 @@
|
|
|
16
16
|
# input: double fasta_separator = '' [Separator for a FASTA notation]
|
|
17
17
|
# output: dataframe sequences
|
|
18
18
|
|
|
19
|
+
"""
|
|
20
|
+
The most simple options set running from command line
|
|
21
|
+
python sequence_generator.py -c 4 -s 50 > output_file.tsv
|
|
22
|
+
Basic options:
|
|
23
|
+
-с number of clusters
|
|
24
|
+
-s cluster size (number of sequences per cluster)
|
|
25
|
+
"""
|
|
26
|
+
|
|
19
27
|
import random
|
|
20
28
|
import argparse
|
|
21
29
|
import sys
|
package/src/package.ts
CHANGED
|
@@ -57,6 +57,7 @@ import {BioPackage, BioPackageProperties} from './package-types';
|
|
|
57
57
|
import {RDModule} from '@datagrok-libraries/chem-meta/src/rdkit-api';
|
|
58
58
|
import {ObjectPropertyBag} from 'datagrok-api/dg';
|
|
59
59
|
import {PackageSettingsEditorWidget} from './widgets/package-settings-editor-widget';
|
|
60
|
+
import {getCompositionAnalysisWidget} from './widgets/composition-analysis-widget';
|
|
60
61
|
|
|
61
62
|
export const _package = new BioPackage();
|
|
62
63
|
|
|
@@ -218,6 +219,14 @@ export function macroMolColumnPropertyPanel(molColumn: DG.Column): DG.Widget {
|
|
|
218
219
|
return getMacromoleculeColumnPropertyPanel(molColumn);
|
|
219
220
|
}
|
|
220
221
|
|
|
222
|
+
//name: Composition analysis
|
|
223
|
+
//tags: panel, bio, widgets
|
|
224
|
+
//input: semantic_value sequence { semType: Macromolecule }
|
|
225
|
+
//output: widget result
|
|
226
|
+
export function compositionAnalysisWidget(sequence: DG.SemanticValue): DG.Widget {
|
|
227
|
+
return getCompositionAnalysisWidget(sequence);
|
|
228
|
+
}
|
|
229
|
+
|
|
221
230
|
//name: separatorSequenceCellRenderer
|
|
222
231
|
//tags: cellRenderer
|
|
223
232
|
//meta.cellType: sequence
|
|
@@ -771,7 +780,7 @@ export async function webLogoLargeApp(): Promise<void> {
|
|
|
771
780
|
const pi = DG.TaskBarProgressIndicator.create('WebLogo');
|
|
772
781
|
try {
|
|
773
782
|
const app = new WebLogoApp();
|
|
774
|
-
const df: DG.DataFrame = await _package.files.readCsv('data/
|
|
783
|
+
const df: DG.DataFrame = await _package.files.readCsv('data/sample_PT_100000x5.csv');
|
|
775
784
|
await grok.data.detectSemanticTypes(df);
|
|
776
785
|
await app.init(df, 'webLogoLargeApp');
|
|
777
786
|
} finally {
|
|
@@ -61,8 +61,8 @@ ATC-G-TTGC--
|
|
|
61
61
|
|
|
62
62
|
for (let i = 0; i < positions.length; i++) {
|
|
63
63
|
expect(positions[i].name, resAllDf1[i].name);
|
|
64
|
-
for (const
|
|
65
|
-
expect(positions[i].
|
|
64
|
+
for (const m of positions[i].getMonomers())
|
|
65
|
+
expect(positions[i].getFreq(m).count, resAllDf1[i].getFreq(m).count);
|
|
66
66
|
}
|
|
67
67
|
}, {skipReason: 'GROK-13300'});
|
|
68
68
|
|
|
@@ -109,8 +109,8 @@ ATC-G-TTGC--
|
|
|
109
109
|
|
|
110
110
|
for (let i = 0; i < positions.length; i++) {
|
|
111
111
|
expect(positions[i].name, resAllDf1[i].name);
|
|
112
|
-
for (const
|
|
113
|
-
expect(positions[i].
|
|
112
|
+
for (const m of positions[i].getMonomers())
|
|
113
|
+
expect(positions[i].getFreq(m).count, resAllDf1[i].getFreq(m).count);
|
|
114
114
|
}
|
|
115
115
|
}, {skipReason: 'GROK-13300'});
|
|
116
116
|
|
|
@@ -187,10 +187,10 @@ ATC-G-TTGC--
|
|
|
187
187
|
|
|
188
188
|
function expectPositionInfo(actualPos: PI, expectedPos: PI): void {
|
|
189
189
|
expect(actualPos.name, expectedPos.name);
|
|
190
|
-
expectArray(
|
|
191
|
-
for (const key
|
|
190
|
+
expectArray(actualPos.getMonomers(), expectedPos.getMonomers());
|
|
191
|
+
for (const key of actualPos.getMonomers()) {
|
|
192
192
|
//
|
|
193
|
-
expect(actualPos.
|
|
193
|
+
expect(actualPos.getFreq(key).count, expectedPos.getFreq(key).count);
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
|