@datagrok/sequence-translator 1.9.9 → 1.9.11
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/.eslintrc.json +0 -1
- 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/files/polytool-rules/rules_example.json +4 -4
- package/package.json +4 -4
- package/src/demo/demo-st-ui.ts +4 -4
- package/src/package-api.ts +4 -4
- package/src/package.g.ts +195 -0
- package/src/package.ts +345 -273
- package/src/polytool/conversion/pt-rule-cards.ts +76 -47
- package/src/polytool/conversion/pt-rules.ts +39 -12
- package/src/polytool/conversion/rule-manager.ts +65 -12
- package/src/polytool/conversion/style.css +2 -2
- package/src/polytool/pt-enumerate-seq-dialog.ts +3 -3
- package/src/tests/polytool-convert-tests.ts +2 -2
- package/test-console-output-1.log +139 -138
- package/test-record-1.mp4 +0 -0
- package/tsconfig.json +2 -2
- package/webpack.config.js +5 -1
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"linkRules": [
|
|
5
5
|
{
|
|
6
6
|
"firstMonomers": [
|
|
7
|
-
"
|
|
7
|
+
"D"
|
|
8
8
|
],
|
|
9
9
|
"secondMonomers": [
|
|
10
|
-
"
|
|
10
|
+
"NH2"
|
|
11
11
|
],
|
|
12
|
-
"firstLinkingGroup": "
|
|
13
|
-
"secondLinkingGroup": "
|
|
12
|
+
"firstLinkingGroup": "3",
|
|
13
|
+
"secondLinkingGroup": "2",
|
|
14
14
|
"code": "2"
|
|
15
15
|
},
|
|
16
16
|
{
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datagrok/sequence-translator",
|
|
3
3
|
"friendlyName": "Sequence Translator",
|
|
4
|
-
"version": "1.9.
|
|
4
|
+
"version": "1.9.11",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Davit Rizhinashvili",
|
|
7
7
|
"email": "drizhinashvili@datagrok.ai"
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
}
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@datagrok-libraries/bio": "^5.54.
|
|
25
|
+
"@datagrok-libraries/bio": "^5.54.8",
|
|
26
26
|
"@datagrok-libraries/chem-meta": "^1.2.8",
|
|
27
27
|
"@datagrok-libraries/tutorials": "^1.6.1",
|
|
28
|
-
"@datagrok-libraries/utils": "^4.
|
|
28
|
+
"@datagrok-libraries/utils": "^4.6.3",
|
|
29
29
|
"@types/react": "^18.0.15",
|
|
30
30
|
"cash-dom": "^8.1.0",
|
|
31
31
|
"datagrok-api": "^1.25.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
|
55
55
|
"@typescript-eslint/parser": "^7.2.0",
|
|
56
56
|
"css-loader": "^6.7.3",
|
|
57
|
-
"datagrok-tools": "^4.14.
|
|
57
|
+
"datagrok-tools": "^4.14.48",
|
|
58
58
|
"eslint": "^8.57.0",
|
|
59
59
|
"eslint-config-google": "^0.14.0",
|
|
60
60
|
"style-loader": "^3.3.1",
|
package/src/demo/demo-st-ui.ts
CHANGED
|
@@ -3,19 +3,19 @@ import * as ui from 'datagrok-api/ui';
|
|
|
3
3
|
import * as DG from 'datagrok-api/dg';
|
|
4
4
|
|
|
5
5
|
import {delay} from '@datagrok-libraries/utils/src/test';
|
|
6
|
-
import {
|
|
6
|
+
import {PackageFunctions} from '../package';
|
|
7
7
|
import {tryCatch} from '../apps/common/model/helpers';
|
|
8
8
|
|
|
9
9
|
export async function demoOligoTranslatorUI() {
|
|
10
10
|
await tryCatch(async () => {
|
|
11
|
-
const view = await oligoTranslatorApp();
|
|
11
|
+
const view = await PackageFunctions.oligoTranslatorApp();
|
|
12
12
|
grok.shell.addView(view);
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export async function demoOligoPatternUI() {
|
|
17
17
|
await tryCatch(async () => {
|
|
18
|
-
const view = await oligoPatternApp();
|
|
18
|
+
const view = await PackageFunctions.oligoPatternApp();
|
|
19
19
|
grok.shell.addView(view);
|
|
20
20
|
});
|
|
21
21
|
}
|
|
@@ -31,7 +31,7 @@ export async function demoOligoStructureUI() {
|
|
|
31
31
|
textarea.dispatchEvent(event);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
const view = await oligoStructureApp();
|
|
34
|
+
const view = await PackageFunctions.oligoStructureApp();
|
|
35
35
|
grok.shell.addView(view);
|
|
36
36
|
const inputSequences = ['Afcgacsu', 'Afcgacsu', 'Afcgacsu'];
|
|
37
37
|
inputSequences.forEach(async (sequence, idx) => {
|
package/src/package-api.ts
CHANGED
|
@@ -8,14 +8,14 @@ import * as DG from 'datagrok-api/dg';
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
export namespace funcs {
|
|
11
|
-
export async function init(): Promise<void> {
|
|
12
|
-
return await grok.functions.call('SequenceTranslator:Init', {});
|
|
13
|
-
}
|
|
14
|
-
|
|
15
11
|
export async function oligoToolkitApp(): Promise<DG.View> {
|
|
16
12
|
return await grok.functions.call('SequenceTranslator:OligoToolkitApp', {});
|
|
17
13
|
}
|
|
18
14
|
|
|
15
|
+
export async function init(): Promise<void> {
|
|
16
|
+
return await grok.functions.call('SequenceTranslator:Init', {});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
19
|
export async function oligoTranslatorApp(): Promise<DG.View> {
|
|
20
20
|
return await grok.functions.call('SequenceTranslator:OligoTranslatorApp', {});
|
|
21
21
|
}
|
package/src/package.g.ts
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import {PackageFunctions} from './package';
|
|
2
|
+
import * as DG from 'datagrok-api/dg';
|
|
3
|
+
|
|
4
|
+
//name: Oligo Toolkit
|
|
5
|
+
//tags: app
|
|
6
|
+
//output: view result
|
|
7
|
+
//meta.icon: img/icons/toolkit.png
|
|
8
|
+
//meta.browsePath: Peptides | Oligo Toolkit
|
|
9
|
+
export async function oligoToolkitApp() : Promise<any> {
|
|
10
|
+
return await PackageFunctions.oligoToolkitApp();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//tags: init
|
|
14
|
+
export async function init() : Promise<void> {
|
|
15
|
+
await PackageFunctions.init();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//name: Oligo Translator
|
|
19
|
+
//tags: app
|
|
20
|
+
//output: view result
|
|
21
|
+
//meta.icon: img/icons/translator.png
|
|
22
|
+
//meta.browsePath: Peptides | Oligo Toolkit
|
|
23
|
+
export async function oligoTranslatorApp() : Promise<any> {
|
|
24
|
+
return await PackageFunctions.oligoTranslatorApp();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
//name: Oligo Pattern
|
|
28
|
+
//tags: app
|
|
29
|
+
//output: view result
|
|
30
|
+
//meta.icon: img/icons/pattern.png
|
|
31
|
+
//meta.browsePath: Peptides | Oligo Toolkit
|
|
32
|
+
export async function oligoPatternApp() : Promise<any> {
|
|
33
|
+
return await PackageFunctions.oligoPatternApp();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//name: Oligo Structure
|
|
37
|
+
//tags: app
|
|
38
|
+
//output: view result
|
|
39
|
+
//meta.icon: img/icons/structure.png
|
|
40
|
+
//meta.browsePath: Peptides | Oligo Toolkit
|
|
41
|
+
export async function oligoStructureApp() : Promise<any> {
|
|
42
|
+
return await PackageFunctions.oligoStructureApp();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//output: object result
|
|
46
|
+
export async function getTranslationHelper() : Promise<any> {
|
|
47
|
+
return await PackageFunctions.getTranslationHelper();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//output: object result
|
|
51
|
+
export function getCodeToWeightsMap() : any {
|
|
52
|
+
return PackageFunctions.getCodeToWeightsMap();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//input: string sequence
|
|
56
|
+
//output: bool result
|
|
57
|
+
export function validateSequence(sequence: string) : boolean {
|
|
58
|
+
return PackageFunctions.validateSequence(sequence);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//name: validateSequence
|
|
62
|
+
//input: string sequence
|
|
63
|
+
//input: bool invert
|
|
64
|
+
//output: string result
|
|
65
|
+
export function getMolfileFromGcrsSequence(sequence: string, invert: boolean) : string {
|
|
66
|
+
return PackageFunctions.getMolfileFromGcrsSequence(sequence, invert);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//input: object strands
|
|
70
|
+
//output: string result
|
|
71
|
+
export function linkStrands(strands: any) : string {
|
|
72
|
+
return PackageFunctions.linkStrands(strands);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
//name: demoOligoTranslator
|
|
76
|
+
//description: Translate oligonucleotide sequences across various formats accepted by different synthesizers
|
|
77
|
+
//meta.demoPath: Bioinformatics | Oligo Toolkit | Translator
|
|
78
|
+
//meta.path: /apps/Tutorials/Demo/Bioinformatics/Oligonucleotide%20Sequence:%20Translate
|
|
79
|
+
//meta.demoSkip: GROK-14320
|
|
80
|
+
export async function demoTranslateSequence() : Promise<void> {
|
|
81
|
+
await PackageFunctions.demoTranslateSequence();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
//description: Design a modification pattern for an oligonucleotide sequence
|
|
85
|
+
//meta.demoPath: Bioinformatics | Oligo Toolkit | Pattern
|
|
86
|
+
//meta.path: %20/apps/Tutorials/Demo/Bioinformatics/Oligonucleotide%20Sequence:%20Visualize%20duplex
|
|
87
|
+
export async function demoOligoPattern() : Promise<void> {
|
|
88
|
+
await PackageFunctions.demoOligoPattern();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
//description: Visualize duplex and save SDF
|
|
92
|
+
//meta.demoPath: Bioinformatics | Oligo Toolkit | Structure
|
|
93
|
+
//meta.path: %20/apps/Tutorials/Demo/Bioinformatics/Oligonucleotide%20Sequence:%20Visualize%20duplex
|
|
94
|
+
export async function demoOligoStructure() : Promise<void> {
|
|
95
|
+
await PackageFunctions.demoOligoStructure();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
//input: string sequence
|
|
99
|
+
//input: string sourceFormat
|
|
100
|
+
//input: string targetFormat
|
|
101
|
+
//output: string result
|
|
102
|
+
export async function translateOligonucleotideSequence(sequence: string, sourceFormat: string, targetFormat: string) : Promise<string> {
|
|
103
|
+
return await PackageFunctions.translateOligonucleotideSequence(sequence, sourceFormat, targetFormat);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
//name: polyToolConvert
|
|
107
|
+
//description: Perform cyclization of polymers
|
|
108
|
+
//top-menu: Bio | PolyTool | Convert...
|
|
109
|
+
export async function polyToolConvertTopMenu() : Promise<void> {
|
|
110
|
+
await PackageFunctions.polyToolConvertTopMenu();
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
//tags: editor
|
|
114
|
+
//input: funccall call
|
|
115
|
+
//output: column result
|
|
116
|
+
export async function getPolyToolConvertEditor(call: DG.FuncCall) : Promise<any> {
|
|
117
|
+
return await PackageFunctions.getPolyToolConvertEditor(call);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
//input: dataframe table
|
|
121
|
+
//input: column seqCol { caption: Sequence }
|
|
122
|
+
//input: bool generateHelm { default: true }
|
|
123
|
+
//input: bool chiralityEngine { default: true }
|
|
124
|
+
//input: object rules
|
|
125
|
+
//output: column result
|
|
126
|
+
//editor: SequenceTranslator:getPolyToolConvertEditor
|
|
127
|
+
export async function polyToolConvert2(table: DG.DataFrame, seqCol: DG.Column, generateHelm: boolean, chiralityEngine: boolean, rules: string[]) : Promise<any> {
|
|
128
|
+
return await PackageFunctions.polyToolConvert2(table, seqCol, generateHelm, chiralityEngine, rules);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
//name: polyToolEnumerateHelm
|
|
132
|
+
//description: Perform cyclization of polymers
|
|
133
|
+
//top-menu: Bio | PolyTool | Enumerate HELM...
|
|
134
|
+
export async function polyToolEnumerateHelmTopMenu() : Promise<void> {
|
|
135
|
+
await PackageFunctions.polyToolEnumerateHelmTopMenu();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
//name: polyToolEnumerateChem
|
|
139
|
+
//description: Perform cyclization of polymers
|
|
140
|
+
//top-menu: Bio | PolyTool | Enumerate Chem...
|
|
141
|
+
export async function polyToolEnumerateChemTopMenu() : Promise<void> {
|
|
142
|
+
await PackageFunctions.polyToolEnumerateChemTopMenu();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
//input: dataframe df { description: Input data table }
|
|
146
|
+
//input: column macroMolecule
|
|
147
|
+
export async function polyToolColumnChoice(df: DG.DataFrame, macroMolecule: DG.Column) : Promise<void> {
|
|
148
|
+
await PackageFunctions.polyToolColumnChoice(df, macroMolecule);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
//input: file file
|
|
152
|
+
export async function createMonomerLibraryForPolyTool(file: DG.FileInfo) : Promise<void> {
|
|
153
|
+
await PackageFunctions.createMonomerLibraryForPolyTool(file);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
//name: HELM Enumerator
|
|
157
|
+
//tags: app
|
|
158
|
+
//meta.icon: img/icons/structure.png
|
|
159
|
+
//meta.browsePath: Peptides | PolyTool
|
|
160
|
+
export async function ptEnumeratorHelmApp() : Promise<void> {
|
|
161
|
+
await PackageFunctions.ptEnumeratorHelmApp();
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
//name: Chem Enumerator
|
|
165
|
+
//tags: app
|
|
166
|
+
//meta.icon: img/icons/structure.png
|
|
167
|
+
//meta.browsePath: Peptides | PolyTool
|
|
168
|
+
export async function ptEnumeratorChemApp() : Promise<void> {
|
|
169
|
+
await PackageFunctions.ptEnumeratorChemApp();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
//name: Polytool Helm Enumerator dialog
|
|
173
|
+
//input: object cell { nullable: true }
|
|
174
|
+
export async function getPtHelmEnumeratorDialog(cell?: any) : Promise<void> {
|
|
175
|
+
await PackageFunctions.getPtHelmEnumeratorDialog(cell);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
//name: Polytool Chem Enumerator dialog
|
|
179
|
+
//input: object cell { nullable: true }
|
|
180
|
+
export async function getPtChemEnumeratorDialog(cell?: any) : Promise<void> {
|
|
181
|
+
await PackageFunctions.getPtChemEnumeratorDialog(cell);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
//name: Combine Sequences
|
|
185
|
+
//top-menu: Bio | PolyTool | Combine Sequences...
|
|
186
|
+
export async function getPolyToolCombineDialog() : Promise<void> {
|
|
187
|
+
await PackageFunctions.getPolyToolCombineDialog();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
//name: applyNotationProviderForHarmonizedSequence
|
|
191
|
+
//input: column col
|
|
192
|
+
//input: string separator
|
|
193
|
+
export function applyNotationProviderForCyclized(col: DG.Column<any>, separator: string) : void {
|
|
194
|
+
PackageFunctions.applyNotationProviderForCyclized(col, separator);
|
|
195
|
+
}
|