@datagrok/sequence-translator 1.0.17 → 1.1.0

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.
Files changed (96) hide show
  1. package/.eslintrc.json +4 -3
  2. package/CHANGELOG.md +3 -0
  3. package/detectors.js +8 -0
  4. package/dist/package-test.js +2 -73079
  5. package/dist/package-test.js.map +1 -0
  6. package/dist/package.js +2 -72284
  7. package/dist/package.js.map +1 -0
  8. package/files/axolabs-style.json +97 -0
  9. package/files/codes-to-symbols.json +66 -0
  10. package/files/formats-to-helm.json +59 -0
  11. package/files/linkers.json +22 -0
  12. package/files/monomer-lib.json +1094 -0
  13. package/link-bio +7 -0
  14. package/package.json +30 -28
  15. package/scripts/build-monomer-lib.py +391 -122
  16. package/src/demo/demo-st-ui.ts +71 -0
  17. package/src/demo/handle-error.ts +12 -0
  18. package/src/model/axolabs/axolabs-tab.ts +111 -0
  19. package/src/model/axolabs/const.ts +33 -0
  20. package/src/{axolabs-tab → model/axolabs}/draw-svg.ts +1 -1
  21. package/src/{axolabs-tab → model/axolabs}/helpers.ts +7 -5
  22. package/src/model/const.ts +19 -0
  23. package/src/model/data-loading-utils/const.ts +8 -0
  24. package/src/model/data-loading-utils/json-loader.ts +38 -0
  25. package/src/model/data-loading-utils/types.ts +30 -0
  26. package/src/model/format-translation/const.ts +8 -0
  27. package/src/model/format-translation/conversion-utils.ts +48 -0
  28. package/src/model/format-translation/format-converter.ts +107 -0
  29. package/src/model/helpers.ts +12 -0
  30. package/src/model/monomer-lib/const.ts +3 -0
  31. package/src/model/monomer-lib/lib-wrapper.ts +106 -0
  32. package/src/model/parsing-validation/format-detector.ts +57 -0
  33. package/src/model/parsing-validation/sequence-validator.ts +52 -0
  34. package/src/model/sequence-to-structure-utils/const.ts +1 -0
  35. package/src/{utils/structures-works → model/sequence-to-structure-utils}/mol-transformations.ts +33 -41
  36. package/src/model/sequence-to-structure-utils/monomer-code-parser.ts +92 -0
  37. package/src/model/sequence-to-structure-utils/sdf-tab.ts +94 -0
  38. package/src/model/sequence-to-structure-utils/sequence-to-molfile.ts +409 -0
  39. package/src/package.ts +104 -92
  40. package/src/tests/const.ts +17 -0
  41. package/src/tests/smiles-tests.ts +32 -457
  42. package/src/view/const/main-tab.ts +3 -0
  43. package/src/view/const/view.ts +10 -0
  44. package/src/view/css/axolabs-tab.css +1 -0
  45. package/src/view/css/colored-text-input.css +27 -0
  46. package/src/view/css/main-tab.css +46 -0
  47. package/src/view/css/sdf-tab.css +39 -0
  48. package/src/view/monomer-lib-viewer/viewer.ts +22 -0
  49. package/src/view/tabs/axolabs.ts +720 -0
  50. package/src/view/tabs/main.ts +174 -0
  51. package/src/view/tabs/sdf.ts +173 -0
  52. package/src/view/utils/app-info-dialog.ts +18 -0
  53. package/src/view/utils/colored-input/colored-text-input.ts +56 -0
  54. package/src/view/utils/colored-input/input-painters.ts +44 -0
  55. package/src/view/utils/draw-molecule.ts +86 -0
  56. package/src/view/utils/molecule-img.ts +106 -0
  57. package/src/view/view.ts +129 -0
  58. package/tsconfig.json +12 -18
  59. package/webpack.config.js +17 -4
  60. package/README.md +0 -84
  61. package/css/style.css +0 -18
  62. package/img/Sequence Translator Axolabs.png +0 -0
  63. package/jest.config.js +0 -33
  64. package/setup-unlink-clean.cmd +0 -14
  65. package/setup-unlink-clean.sh +0 -21
  66. package/setup.cmd +0 -14
  67. package/setup.sh +0 -37
  68. package/src/__jest__/remote.test.ts +0 -77
  69. package/src/__jest__/test-node.ts +0 -97
  70. package/src/apps/oligo-sd-file-app.ts +0 -58
  71. package/src/autostart/calculations.ts +0 -40
  72. package/src/autostart/constants.ts +0 -37
  73. package/src/autostart/registration.ts +0 -306
  74. package/src/axolabs-tab/axolabs-tab.ts +0 -873
  75. package/src/axolabs-tab/define-pattern.ts +0 -874
  76. package/src/hardcode-to-be-eliminated/ICDs.ts +0 -3
  77. package/src/hardcode-to-be-eliminated/IDPs.ts +0 -3
  78. package/src/hardcode-to-be-eliminated/const.ts +0 -5
  79. package/src/hardcode-to-be-eliminated/constants.ts +0 -101
  80. package/src/hardcode-to-be-eliminated/converters.ts +0 -323
  81. package/src/hardcode-to-be-eliminated/map.ts +0 -720
  82. package/src/hardcode-to-be-eliminated/salts.ts +0 -2
  83. package/src/hardcode-to-be-eliminated/sources.ts +0 -3
  84. package/src/hardcode-to-be-eliminated/users.ts +0 -3
  85. package/src/main-tab/main-tab.ts +0 -210
  86. package/src/sdf-tab/sdf-tab.ts +0 -163
  87. package/src/sdf-tab/sequence-codes-tools.ts +0 -347
  88. package/src/utils/const.ts +0 -0
  89. package/src/utils/helpers.ts +0 -28
  90. package/src/utils/parse.ts +0 -27
  91. package/src/utils/sdf-add-columns.ts +0 -118
  92. package/src/utils/sdf-save-table.ts +0 -56
  93. package/src/utils/structures-works/draw-molecule.ts +0 -84
  94. package/src/utils/structures-works/from-monomers.ts +0 -266
  95. package/test-SequenceTranslator-6288c2fbe346-695b7b55.html +0 -259
  96. package/vendors/openchemlib-full.js +0 -293
@@ -1,720 +0,0 @@
1
- import * as DG from 'datagrok-api/dg';
2
- import {getAllCodesOfSynthesizer} from '../sdf-tab/sequence-codes-tools';
3
- import {differenceOfTwoArrays} from '../utils/helpers';
4
-
5
- export const DELIMITER = ';';
6
- export const NUCLEOTIDES = ['A', 'G', 'C', 'U', 'T'];
7
- export const SYNTHESIZERS = {
8
- RAW_NUCLEOTIDES: 'Raw Nucleotides',
9
- BIOSPRING: 'BioSpring Codes',
10
- GCRS: 'Janssen GCRS Codes',
11
- AXOLABS: 'Axolabs Codes',
12
- MERMADE_12: 'Mermade 12',
13
- LCMS: 'LCMS',
14
- };
15
- export const TECHNOLOGIES = {
16
- DNA: 'DNA',
17
- RNA: 'RNA',
18
- ASO_GAPMERS: 'For ASO Gapmers',
19
- SI_RNA: 'For 2\'-OMe and 2\'-F modified siRNA',
20
- };
21
- export const MODIFICATIONS: {[index: string]: {molecularWeight: number, left: string, right: string}} = {
22
- '(invabasic)': {
23
- molecularWeight: 118.13,
24
- left: 'O[C@@H]1C[C@@H]O[C@H]1CO',
25
- right: 'O[C@@H]1C[C@@H]O[C@H]1CO',
26
- },
27
- '(GalNAc-2-JNJ)': {
28
- molecularWeight: 1273.3,
29
- left: 'C(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)' +
30
- '(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)' +
31
- '(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)NC(=O)CCCC(=O)NCC(O)CO',
32
- right: 'OCC(O)CNC(=O)CCCC(=O)NC(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)' +
33
- '(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)'+
34
- '(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)',
35
- },
36
- };
37
- export const stadardPhosphateLinkSmiles = 'OP(=O)(O)O';
38
- export const map: {[synthesizer: string]:
39
- {[technology: string]: {[code: string]:
40
- {'name': string, 'weight': number, 'normalized': string, 'SMILES': string}}}} = {
41
- 'Raw Nucleotides': {
42
- 'DNA': {
43
- 'A': {
44
- 'name': 'Adenine',
45
- 'weight': 313.21,
46
- 'normalized': 'dA',
47
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)C[C@@H]1O',
48
- },
49
- 'T': {
50
- 'name': 'Thymine',
51
- 'weight': 304.2,
52
- 'normalized': 'dT',
53
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(=O)NC2(=O))C[C@@H]1O',
54
- },
55
- 'G': {
56
- 'name': 'Guanine',
57
- 'weight': 329.21,
58
- 'normalized': 'dG',
59
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)C[C@@H]1O',
60
- },
61
- 'C': {
62
- 'name': 'Cytosine',
63
- 'weight': 289.18,
64
- 'normalized': 'dC',
65
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))C[C@@H]1O',
66
- },
67
- },
68
- 'RNA': {
69
- 'A': {
70
- 'name': 'Adenine',
71
- 'weight': 313.21,
72
- 'normalized': 'dA',
73
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)C[C@@H]1O',
74
- },
75
- 'U': {
76
- 'name': 'Uracil',
77
- 'weight': 306.17,
78
- 'normalized': 'rU',
79
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](O)[C@@H]1O',
80
- },
81
- 'G': {
82
- 'name': 'Guanine',
83
- 'weight': 329.21,
84
- 'normalized': 'dG',
85
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)C[C@@H]1O',
86
- },
87
- 'C': {
88
- 'name': 'Cytosine',
89
- 'weight': 289.18,
90
- 'normalized': 'dC',
91
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))C[C@@H]1O',
92
- },
93
- },
94
- },
95
- 'BioSpring Codes': {
96
- 'For ASO Gapmers': {
97
- '5': {
98
- 'name': '2\'MOE-5Me-rU',
99
- 'weight': 378.27,
100
- 'normalized': 'rU',
101
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(=O)NC2(=O))[C@H](OCCOC)[C@@H]1O',
102
- },
103
- '6': {
104
- 'name': '2\'MOE-rA',
105
- 'weight': 387.29,
106
- 'normalized': 'rA',
107
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](OCCOC)[C@@H]1O',
108
- },
109
- '7': {
110
- 'name': '2\'MOE-5Me-rC',
111
- 'weight': 377.29,
112
- 'normalized': 'rC',
113
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(N)=NC2(=O))[C@H](OCCOC)[C@@H]1O',
114
- },
115
- '8': {
116
- 'name': '2\'MOE-rG',
117
- 'weight': 403.28,
118
- 'normalized': 'rG',
119
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](OCCOC)[C@@H]1O',
120
- },
121
- '9': {
122
- 'name': '5-Methyl-dC',
123
- 'weight': 303.21,
124
- 'normalized': 'dC',
125
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(N)=NC2(=O))C[C@@H]1O',
126
- },
127
- '*': {
128
- 'name': 'ps linkage',
129
- 'weight': 16.07,
130
- 'normalized': '',
131
- 'SMILES': 'OP(=O)(S)O',
132
- },
133
- 'A': {
134
- 'name': 'Adenine',
135
- 'weight': 313.21,
136
- 'normalized': 'dA',
137
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)C[C@@H]1O',
138
- },
139
- 'C': {
140
- 'name': 'Cytosine',
141
- 'weight': 289.18,
142
- 'normalized': 'dC',
143
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))C[C@@H]1O',
144
- },
145
- 'G': {
146
- 'name': 'Guanine',
147
- 'weight': 329.21,
148
- 'normalized': 'dG',
149
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)C[C@@H]1O',
150
- },
151
- 'T': {
152
- 'name': 'Thymine',
153
- 'weight': 304.2,
154
- 'normalized': 'dT',
155
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(=O)NC2(=O))C[C@@H]1O',
156
- },
157
- },
158
- 'For 2\'-OMe and 2\'-F modified siRNA': {
159
- '1': {
160
- 'name': '2\'-fluoro-U',
161
- 'weight': 308.16,
162
- 'normalized': 'rU',
163
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](F)[C@@H]1O',
164
- },
165
- '2': {
166
- 'name': '2\'-fluoro-A',
167
- 'weight': 331.2,
168
- 'normalized': 'rA',
169
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](F)[C@@H]1O',
170
- },
171
- '3': {
172
- 'name': '2\'-fluoro-C',
173
- 'weight': 307.18,
174
- 'normalized': 'rC',
175
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](F)[C@@H]1O',
176
- },
177
- '4': {
178
- 'name': '2\'-fluoro-G',
179
- 'weight': 347.19,
180
- 'normalized': 'rG',
181
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](F)[C@@H]1O',
182
- },
183
- '5': {
184
- 'name': '2\'OMe-rU',
185
- 'weight': 320.2,
186
- 'normalized': 'rU',
187
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](OC)[C@@H]1O',
188
- },
189
- '6': {
190
- 'name': '2\'OMe-rA',
191
- 'weight': 343.24,
192
- 'normalized': 'rA',
193
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](OC)[C@@H]1O',
194
- },
195
- '7': {
196
- 'name': '2\'OMe-rC',
197
- 'weight': 319.21,
198
- 'normalized': 'rC',
199
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](OC)[C@@H]1O',
200
- },
201
- '8': {
202
- 'name': '2\'OMe-rG',
203
- 'weight': 359.24,
204
- 'normalized': 'rG',
205
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](OC)[C@@H]1O',
206
- },
207
- '*': {
208
- 'name': 'ps linkage',
209
- 'weight': 16.07,
210
- 'normalized': '',
211
- 'SMILES': 'OP(=O)(S)O',
212
- },
213
- },
214
- },
215
- 'Axolabs Codes': {
216
- 'For 2\'-OMe and 2\'-F modified siRNA': {
217
- 'Uf': {
218
- 'name': '2\'-fluoro-U',
219
- 'weight': 308.16,
220
- 'normalized': 'rU',
221
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](F)[C@@H]1O',
222
- },
223
- 'Af': {
224
- 'name': '2\'-fluoro-A',
225
- 'weight': 331.2,
226
- 'normalized': 'rA',
227
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](F)[C@@H]1O',
228
- },
229
- 'Cf': {
230
- 'name': '2\'-fluoro-C',
231
- 'weight': 307.18,
232
- 'normalized': 'rC',
233
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](F)[C@@H]1O',
234
- },
235
- 'Gf': {
236
- 'name': '2\'-fluoro-G',
237
- 'weight': 347.19,
238
- 'normalized': 'rG',
239
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](F)[C@@H]1O',
240
- },
241
- 'u': {
242
- 'name': '2\'OMe-rU',
243
- 'weight': 320.2,
244
- 'normalized': 'rU',
245
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](OC)[C@@H]1O',
246
- },
247
- 'a': {
248
- 'name': '2\'OMe-rA',
249
- 'weight': 343.24,
250
- 'normalized': 'rA',
251
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](OC)[C@@H]1O',
252
- },
253
- 'c': {
254
- 'name': '2\'OMe-rC',
255
- 'weight': 319.21,
256
- 'normalized': 'rC',
257
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](OC)[C@@H]1O',
258
- },
259
- 'g': {
260
- 'name': '2\'OMe-rG',
261
- 'weight': 359.,
262
- 'normalized': 'rG',
263
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](OC)[C@@H]1O',
264
- },
265
- 's': {
266
- 'name': 'ps linkage',
267
- 'weight': 16.07,
268
- 'normalized': '',
269
- 'SMILES': 'OP(=O)(S)O',
270
- },
271
- },
272
- },
273
- 'Janssen GCRS Codes': {
274
- 'For ASO Gapmers': {
275
- 'moeT': {
276
- 'name': '2\'MOE-5Me-rU',
277
- 'weight': 378.27,
278
- 'normalized': 'rU',
279
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(=O)NC2(=O))[C@H](OCCOC)[C@@H]1O',
280
- },
281
- 'moeA': {
282
- 'name': '2\'MOE-rA',
283
- 'weight': 387.29,
284
- 'normalized': 'rA',
285
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](OCCOC)[C@@H]1O',
286
- },
287
- 'moe5mC': {
288
- 'name': '2\'MOE-5Me-rC',
289
- 'weight': 377.29,
290
- 'normalized': 'rC',
291
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(N)=NC2(=O))[C@H](OCCOC)[C@@H]1O',
292
- },
293
- '(5m)moeC': {
294
- 'name': '2\'MOE-5Me-rC',
295
- 'weight': 377.29,
296
- 'normalized': 'rC',
297
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(N)=NC2(=O))[C@H](OCCOC)[C@@H]1O',
298
- },
299
- 'moeG': {
300
- 'name': '2\'MOE-rG',
301
- 'weight': 403.28,
302
- 'normalized': 'rG',
303
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](OCCOC)[C@@H]1O',
304
- },
305
- '5mC': {
306
- 'name': '5-Methyl-dC',
307
- 'weight': 303.28,
308
- 'normalized': 'dC',
309
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(N)=NC2(=O))C[C@@H]1O',
310
- },
311
- '(5m)C': {
312
- 'name': '5-Methyl-dC',
313
- 'weight': 303.28,
314
- 'normalized': 'dC',
315
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(N)=NC2(=O))C[C@@H]1O',
316
- },
317
- 'ps': {
318
- 'name': 'ps linkage',
319
- 'weight': 16.07,
320
- 'normalized': '',
321
- 'SMILES': 'OP(=O)(S)O',
322
- },
323
- 's': {
324
- 'name': 'ps linkage',
325
- 'weight': 16.07,
326
- 'normalized': '',
327
- 'SMILES': 'OP(=O)(S)O',
328
- },
329
- 'A': {
330
- 'name': 'Adenine',
331
- 'weight': 313.21,
332
- 'normalized': 'dA',
333
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)C[C@@H]1O',
334
- },
335
- 'dA': {
336
- 'name': 'Adenine',
337
- 'weight': 313.21,
338
- 'normalized': 'dA',
339
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)C[C@@H]1O',
340
- },
341
- 'C': {
342
- 'name': 'Cytosine',
343
- 'weight': 289.18,
344
- 'normalized': 'dC',
345
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))C[C@@H]1O',
346
- },
347
- 'dC': {
348
- 'name': 'Cytosine',
349
- 'weight': 289.18,
350
- 'normalized': 'dC',
351
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))C[C@@H]1O',
352
- },
353
- 'G': {
354
- 'name': 'Guanine',
355
- 'weight': 329.21,
356
- 'normalized': 'dG',
357
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)C[C@@H]1O',
358
- },
359
- 'dG': {
360
- 'name': 'Guanine',
361
- 'weight': 329.21,
362
- 'normalized': 'dG',
363
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)C[C@@H]1O',
364
- },
365
- 'T': {
366
- 'name': 'Thymine',
367
- 'weight': 304.2,
368
- 'normalized': 'dT',
369
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(=O)NC2(=O))C[C@@H]1O',
370
- },
371
- 'dT': {
372
- 'name': 'Thymine',
373
- 'weight': 304.2,
374
- 'normalized': 'dT',
375
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=C(C)C(=O)NC2(=O))C[C@@H]1O',
376
- },
377
- 'rA': {
378
- 'name': 'Adenine',
379
- 'weight': 329.21,
380
- 'normalized': 'rA',
381
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](O)[C@@H]1O',
382
- },
383
- 'rC': {
384
- 'name': 'Cytosine',
385
- 'weight': 305.18,
386
- 'normalized': 'rC',
387
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](O)[C@@H]1O',
388
- },
389
- 'rG': {
390
- 'name': 'Guanine',
391
- 'weight': 345.21,
392
- 'normalized': 'rG',
393
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](O)[C@@H]1O',
394
- },
395
- 'rU': {
396
- 'name': 'Uracil',
397
- 'weight': 306.17,
398
- 'normalized': 'rU',
399
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](O)[C@@H]1O',
400
- },
401
- },
402
- 'For 2\'-OMe and 2\'-F modified siRNA': {
403
- 'fU': {
404
- 'name': '2\'-fluoro-U',
405
- 'weight': 308.16,
406
- 'normalized': 'rU',
407
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](F)[C@@H]1O',
408
- },
409
- 'fA': {
410
- 'name': '2\'-fluoro-A',
411
- 'weight': 331.2,
412
- 'normalized': 'rA',
413
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](F)[C@@H]1O',
414
- },
415
- 'fC': {
416
- 'name': '2\'-fluoro-C',
417
- 'weight': 307.18,
418
- 'normalized': 'rC',
419
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](F)[C@@H]1O',
420
- },
421
- 'fG': {
422
- 'name': '2\'-fluoro-G',
423
- 'weight': 347.19,
424
- 'normalized': 'rG',
425
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](F)[C@@H]1O',
426
- },
427
- 'mU': {
428
- 'name': '2\'OMe-rU',
429
- 'weight': 320.2,
430
- 'normalized': 'rU',
431
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](OC)[C@@H]1O',
432
- },
433
- 'mA': {
434
- 'name': '2\'OMe-rA',
435
- 'weight': 343.24,
436
- 'normalized': 'rA',
437
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](OC)[C@@H]1O',
438
- },
439
- 'mC': {
440
- 'name': '2\'OMe-rC',
441
- 'weight': 319.21,
442
- 'normalized': 'rC',
443
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](OC)[C@@H]1O',
444
- },
445
- 'mG': {
446
- 'name': '2\'OMe-rG',
447
- 'weight': 359.24,
448
- 'normalized': 'rG',
449
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](OC)[C@@H]1O',
450
- },
451
- },
452
- 'Others': {},
453
- },
454
- 'Mermade 12': {
455
- 'For 2\'-OMe and 2\'-F modified siRNA': {
456
- 'e': {
457
- 'name': '2\'OMe-rA-ps',
458
- 'weight': 359.31,
459
- 'normalized': 'rA',
460
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](OC)[C@@H]1OP(=O)(S)O',
461
- },
462
- 'h': {
463
- 'name': '2\'OMe-rU-ps',
464
- 'weight': 336.27,
465
- 'normalized': 'rU',
466
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](OC)[C@@H]1OP(=O)(S)O',
467
- },
468
- 'g': {
469
- 'name': '2\'OMe-rG-ps',
470
- 'weight': 375.31,
471
- 'normalized': 'rG',
472
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](OC)[C@@H]1OP(=O)(S)O',
473
- },
474
- 'f': {
475
- 'name': '2\'OMe-rC-ps',
476
- 'weight': 335.28,
477
- 'normalized': 'rC',
478
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](OC)[C@@H]1OP(=O)(S)O',
479
- },
480
- 'i': {
481
- 'name': '2\'-fluoro-A-ps',
482
- 'weight': 347.27,
483
- 'normalized': 'rA',
484
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](F)[C@@H]1OP(=O)(S)O',
485
- },
486
- 'l': {
487
- 'name': '2\'-fluoro-U-ps',
488
- 'weight': 324.23,
489
- 'normalized': 'rU',
490
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](F)[C@@H]1OP(=O)(S)O',
491
- },
492
- 'k': {
493
- 'name': '2\'-fluoro-G-ps',
494
- 'weight': 363.26,
495
- 'normalized': 'rG',
496
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](F)[C@@H]1OP(=O)(S)O',
497
- },
498
- 'j': {
499
- 'name': '2\'-fluoro-C-ps',
500
- 'weight': 323.25,
501
- 'normalized': 'rC',
502
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](F)[C@@H]1OP(=O)(S)O',
503
- },
504
- 'L': {
505
- 'name': '2\'-fluoro-U',
506
- 'weight': 308.16,
507
- 'normalized': 'rU',
508
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](F)[C@@H]1O',
509
- },
510
- 'I': {
511
- 'name': '2\'-fluoro-A',
512
- 'weight': 331.2,
513
- 'normalized': 'rA',
514
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](F)[C@@H]1O',
515
- },
516
- 'J': {
517
- 'name': '2\'-fluoro-C',
518
- 'weight': 307.18,
519
- 'normalized': 'rC',
520
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](F)[C@@H]1O',
521
- },
522
- 'K': {
523
- 'name': '2\'-fluoro-G',
524
- 'weight': 347.19,
525
- 'normalized': 'rG',
526
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](F)[C@@H]1O',
527
- },
528
- 'H': {
529
- 'name': '2\'OMe-rU',
530
- 'weight': 320.2,
531
- 'normalized': 'rU',
532
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(=O)NC2(=O))[C@H](OC)[C@@H]1O',
533
- },
534
- 'E': {
535
- 'name': '2\'OMe-rA',
536
- 'weight': 343.24,
537
- 'normalized': 'rA',
538
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=CN=C(N)C=3N=C2)[C@H](OC)[C@@H]1O',
539
- },
540
- 'F': {
541
- 'name': '2\'OMe-rC',
542
- 'weight': 319.21,
543
- 'normalized': 'rC',
544
- 'SMILES': 'OC[C@H]1O[C@@H](N2C=CC(N)=NC2(=O))[C@H](OC)[C@@H]1O',
545
- },
546
- 'G': {
547
- 'name': '2\'OMe-rG',
548
- 'weight': 359.24,
549
- 'normalized': 'rG',
550
- 'SMILES': 'OC[C@H]1O[C@@H](N2C3N=C(N)NC(=O)C=3N=C2)[C@H](OC)[C@@H]1O',
551
- },
552
- },
553
- },
554
- };
555
-
556
- export const lcmsToGcrs = `LCMS, GCRS
557
- A, A
558
- C, C
559
- /5mC/, (5m)C
560
- G, G
561
- T, T
562
- rA, rA
563
- rC, rC
564
- rG, rG
565
- rU, rU
566
- mA, mA
567
- mC, mC
568
- /5mmC/, (5m)mC
569
- mG, mG
570
- mU, mU
571
- fA, fA
572
- fC, fC
573
- /5mfC/, (5m)fC
574
- fG, fG
575
- fU, fU
576
- /afA/, afA
577
- /afC/, afC
578
- /afG/, afG
579
- /afU/, afU
580
- +A, lna A
581
- +C, lna C
582
- +G, lna G
583
- +T, lna T
584
- /moeA/, moeA
585
- /moeC/, moeC
586
- /5mmoeC/, (5m)moeC
587
- /moeG/, moeG
588
- /moeT/, moeT
589
- /moeU/, moeU
590
- /xA/, Anp
591
- /xC/, Cnp
592
- /x5mC/, (5m)Cnp
593
- /xG/, Gnp
594
- /xT/, Tnp
595
- /xrA/, rAnp
596
- /xrC/, rCnp
597
- /xrG/, rGnp
598
- /xrU/, rUnp
599
- /xmA/, mAnp
600
- /xmC/, mCnp
601
- /x5mmC/, (5m)mCnp
602
- /xmG/, mGnp
603
- /xmU/, mUnp
604
- /xfA/, fAnp
605
- /xfC/, fCnp
606
- /xfG/, fGnp
607
- /xfT/, fTnp
608
- /xfU/, fUnp
609
- /xafA/, afAnp
610
- /xafC/, afCnp
611
- /xafG/, afGnp
612
- /xafU/, afUnp
613
- /xeA/, eAnp
614
- /xeC/, eCnp
615
- /xeG/, eGnp
616
- /xeU/, eUnp
617
- /xmoeA/, moeAnp
618
- /xmoeC/, moeCnp
619
- /x5mmoeC/, (5m)moeCnp
620
- /xmoeG/, moeGnp
621
- /xmoeU/, moeUnp
622
- /UNA-A/, (UNA-A)
623
- /UNA-C/, (UNA-C)
624
- /UNA-G/, (UNA-G)
625
- /UNA-T/, (UNA-T)
626
- /UNA-U/, (UNA-U)
627
- /GNA-A/, (GNA-A)
628
- /GNA-C/, (GNA-C)
629
- /GNA-G/, (GNA-G)
630
- /GNA-T/, (GNA-T)
631
- /GNA-U/, (GNA-U)
632
- /5CholTEG/, (5-CholTEG)
633
- /3CholTEG/, (TEGChol-3)
634
- /Toco/, Toco
635
- /Palm/, Palm
636
- /GalNAc/, GalNAc
637
- /GalNAc2/, GalNAc2
638
- /GalNAc3/, GalNAc3
639
- /GalNAc6/, GalNAc6
640
- /GalNAc7/, GalNAc7
641
- /GalNAc9/, GalNAc9
642
- /GalNAc14/, GalNAc14
643
- /NAG37/, NAG37
644
- /HEG/, (HEG)
645
- /TEG/, (TEG)
646
- /AmmC6/, (NHC6)
647
- /AmmC7/, (NHC7)
648
- /AmmC12/, (NHC12)
649
- /invAb/, (invabasic)
650
- /invdT/, (invdT)
651
- /VPmU/, (vinu)
652
- *, ps
653
- /2-C16U/, 2-C16U
654
- /2-C18w9U/, 2-C18w9U
655
- /JDi-Palm/, JDi-Palm
656
- /J2-CONC16U/, J2-CONC16U
657
- /J2-C3NC16U/, J2-C3NC16U
658
- /J-C15Ada/, J-C15Ada
659
- /J-2C15AdaU/, J-2C15AdaU
660
- /J-C16NC6/, J-C16NC6
661
- /R2-C6NH-U/, R2-C6NH-U
662
- /J-M1/, J-M1
663
- /J-B1/, J-B1
664
- /J-B2/, J-B2
665
- /J-M2/, J-M2
666
- /2-C16C/, 2-C16C
667
- /2-C16A/, 2-C16A
668
- /2-C16G/, 2-C16G
669
- /R2-C6NH-G/, R2-C6NH-G
670
- /R2-C6NH-C/, R2-C6NH-C
671
- /J2-CONC16A/, J2-CONC16A
672
- /J2-CONC16C/, J2-CONC16C
673
- /J2-CONC16G/, J2-CONC16G
674
- /J2-C15AdaC/, J2-C15AdaC
675
- /J2-M2U/, J2-M2U
676
- /J2-B2U/, J2-B2U
677
- /J2-C3NC16C/, J2-C3NC16C
678
- /J2-C3NC16G/, J2-C3NC16G
679
- /R2-C6NH-A/, R2-C6NH-A
680
- /J2-C15AdaA/, J2-C15AdaA
681
- /J2-C3NC16A/, J2-C3NC16A
682
- /J-C5-SER-1/, J-C5-SER-1
683
- /J-C16-SER-1/, J-C16-SER-1
684
- /J-A2/, J-A2
685
- /J-A1/, J-A1
686
- /J2-C15AdaG/, J2-C15AdaG
687
- /J-C16NAsp/, J-C16NAsp
688
- /J2-C16NC6U/, J2-C16NC6U
689
- /J-C5-REBO-1/, J-C5-REBO-1
690
- /J-C16-REBO-1/, J-C16-REBO-1
691
- /J-C16-IND-1/, J-C16-IND-1
692
- /J-C5-IND-1/, J-C5-IND-1
693
- /J-1C15Ada-2Man/, J-1C15Ada-2Man
694
- /JG-1C15Ada-23DiMan/, JG-1C15Ada-2,3DiMan
695
- /J-TriManPC/, J-TriManPC
696
- /J-triManPO/, J-triManPO
697
- /J-A4/, J-A4
698
- /J-Ara-1/, J-Ara-1
699
- /J-Ara-2/, J-Ara-2
700
- /J-AcCS/, J-AcCS
701
- /J-CbCS/, J-CbCS
702
- /J-MtCD/, J-MtCD`;
703
-
704
-
705
- const codesWithSmiles = getAllCodesOfSynthesizer(SYNTHESIZERS.GCRS);
706
- const allGcrsCodes = DG.DataFrame.fromCsv(lcmsToGcrs).getCol('GCRS').toList();
707
- export const gcrsCodesWithoutSmiles = differenceOfTwoArrays(allGcrsCodes, codesWithSmiles);
708
- for (const e of gcrsCodesWithoutSmiles)
709
- map[SYNTHESIZERS.GCRS]['Others'][e] = {name: '', weight: 0, normalized: '', SMILES: ''};
710
-
711
-
712
- export const weightsObj: {[code: string]: number} = {};
713
- for (const synthesizer of Object.keys(map)) {
714
- for (const technology of Object.keys(map[synthesizer])) {
715
- for (const code of Object.keys(map[synthesizer][technology]))
716
- weightsObj[code] = map[synthesizer][technology][code].weight;
717
- }
718
- }
719
- for (const [key, value] of Object.entries(MODIFICATIONS))
720
- weightsObj[key] = value.molecularWeight;