@datagrok/sequence-translator 1.0.8 → 1.0.10

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.
@@ -78,6 +78,480 @@ M V30 END COLLECTION
78
78
  M V30 END CTAB
79
79
  M END`;
80
80
 
81
+ const GALNAC = `
82
+ Datagrok monomer library Nucleotides
83
+
84
+ 0 0 0 0 0 999 V3000
85
+ M V30 BEGIN CTAB
86
+ M V30 COUNTS 111 113 0 0 0
87
+ M V30 BEGIN ATOM
88
+ M V30 1 O -20.7313 -0.7027 0 0
89
+ M V30 2 C -19.3976 0.0673 0 0
90
+ M V30 3 C -18.0638 -0.7027 0 0
91
+ M V30 4 C -16.7303 0.0673 0 0
92
+ M V30 5 N -15.3965 -0.7027 0 0
93
+ M V30 6 C -14.0628 0.0673 0 0
94
+ M V30 7 C -12.7293 -0.7027 0 0
95
+ M V30 8 C -11.3955 0.0673 0 0
96
+ M V30 9 C -10.062 -0.7027 0 0
97
+ M V30 10 C -8.7283 0.0673 0 0
98
+ M V30 11 N -7.3947 -0.7027 0 0
99
+ M V30 12 O -18.0638 -2.2427 0 0
100
+ M V30 13 O -14.0628 1.6073 0 0
101
+ M V30 14 O -8.7283 1.6073 0 0
102
+ M V30 15 C -5.8547 -0.7027 0 0
103
+ M V30 16 C -5.8547 0.8373 0 0
104
+ M V30 17 C -5.8547 -2.2427 0 0
105
+ M V30 18 C -3.4848 -3.0127 0 0
106
+ M V30 19 C -2.4544 -4.157 0 0
107
+ M V30 20 C -0.948 -3.8368 0 0
108
+ M V30 21 N 0.0824 -4.9813 0 0
109
+ M V30 22 C 1.5888 -4.6612 0 0
110
+ M V30 23 C 2.6192 -5.8056 0 0
111
+ M V30 24 C 4.1256 -5.4855 0 0
112
+ M V30 25 N 5.156 -6.6297 0 0
113
+ M V30 26 C 6.6624 -6.3096 0 0
114
+ M V30 27 C 7.6928 -7.4541 0 0
115
+ M V30 28 C 9.1992 -7.1339 0 0
116
+ M V30 29 C 10.2296 -8.2784 0 0
117
+ M V30 30 C 11.736 -7.9583 0 0
118
+ M V30 31 O 12.7664 -9.1027 0 0
119
+ M V30 32 O -0.4722 -2.3723 0 0
120
+ M V30 33 O 7.1382 -4.845 0 0
121
+ M V30 34 C 14.2728 -8.7824 0 0
122
+ M V30 35 C 15.3032 -9.9267 0 0
123
+ M V30 36 C 16.8098 -9.6065 0 0
124
+ M V30 37 C 17.2856 -8.1421 0 0
125
+ M V30 38 C 16.2552 -6.9975 0 0
126
+ M V30 39 O 14.7486 -7.3178 0 0
127
+ M V30 40 C 16.7312 -5.5329 0 0
128
+ M V30 41 O 18.7918 -7.8218 0 0
129
+ M V30 42 O 17.8404 -10.751 0 0
130
+ M V30 43 N 14.8274 -11.3914 0 0
131
+ M V30 44 C 15.7325 -12.6372 0 0
132
+ M V30 45 C 15.2567 -14.1018 0 0
133
+ M V30 46 O 17.2537 -12.3963 0 0
134
+ M V30 47 O 18.2628 -5.372 0 0
135
+ M V30 48 O -4.9494 -3.4885 0 0
136
+ M V30 49 C -4.521 0.0673 0 0
137
+ M V30 50 C -1.9414 0.2026 0 0
138
+ M V30 51 C -0.6077 -0.5674 0 0
139
+ M V30 52 C 0.726 0.2026 0 0
140
+ M V30 53 N 2.0596 -0.5674 0 0
141
+ M V30 54 C 3.3933 0.2026 0 0
142
+ M V30 55 C 4.7271 -0.5674 0 0
143
+ M V30 56 C 6.0606 0.2026 0 0
144
+ M V30 57 N 7.3943 -0.5674 0 0
145
+ M V30 58 C 8.7281 0.2026 0 0
146
+ M V30 59 C 10.0618 -0.5674 0 0
147
+ M V30 60 C 11.3953 0.2026 0 0
148
+ M V30 61 C 14.0628 0.2026 0 0
149
+ M V30 62 O 15.3964 -0.5674 0 0
150
+ M V30 63 O 0.726 1.7426 0 0
151
+ M V30 64 O 8.7281 1.7426 0 0
152
+ M V30 65 C 16.7301 0.2026 0 0
153
+ M V30 66 C 18.0638 -0.5676 0 0
154
+ M V30 67 C 19.3976 0.2026 0 0
155
+ M V30 68 C 19.3974 1.7426 0 0
156
+ M V30 69 C 18.0638 2.5126 0 0
157
+ M V30 70 O 16.7301 1.7426 0 0
158
+ M V30 71 C 18.064 4.0526 0 0
159
+ M V30 72 O 20.7311 2.5126 0 0
160
+ M V30 73 O 20.7313 -0.5674 0 0
161
+ M V30 74 N 18.0638 -2.1076 0 0
162
+ M V30 75 C 19.3096 -3.0127 0 0
163
+ M V30 76 C 19.3096 -4.5527 0 0
164
+ M V30 77 O 20.6818 -2.3135 0 0
165
+ M V30 78 O 19.4709 4.6791 0 0
166
+ M V30 79 O -3.1872 -0.7027 0 0
167
+ M V30 80 C 12.7291 -0.5674 0 0
168
+ M V30 81 C -3.919 3.2277 0 0
169
+ M V30 82 C -2.4126 2.9076 0 0
170
+ M V30 83 C -1.3822 4.0519 0 0
171
+ M V30 84 N 0.1242 3.7317 0 0
172
+ M V30 85 C 1.1546 4.8762 0 0
173
+ M V30 86 C 2.661 4.5561 0 0
174
+ M V30 87 C 3.6914 5.7005 0 0
175
+ M V30 88 N 5.1978 5.3804 0 0
176
+ M V30 89 C 6.2282 6.5248 0 0
177
+ M V30 90 C 7.7346 6.2045 0 0
178
+ M V30 91 C 8.765 7.349 0 0
179
+ M V30 92 C 10.2714 7.0288 0 0
180
+ M V30 93 C 11.3018 8.1733 0 0
181
+ M V30 94 O 12.8082 7.8532 0 0
182
+ M V30 95 O -1.858 5.5167 0 0
183
+ M V30 96 O 5.7524 7.9894 0 0
184
+ M V30 97 C 13.8386 8.9976 0 0
185
+ M V30 98 C 15.345 8.6773 0 0
186
+ M V30 99 C 16.3756 9.8219 0 0
187
+ M V30 100 C 15.8996 11.2863 0 0
188
+ M V30 101 C 14.3934 11.6068 0 0
189
+ M V30 102 O 13.3628 10.4622 0 0
190
+ M V30 103 C 13.9176 13.0714 0 0
191
+ M V30 104 O 16.93 12.4308 0 0
192
+ M V30 105 O 17.882 9.5018 0 0
193
+ M V30 106 N 15.8208 7.2127 0 0
194
+ M V30 107 C 17.2856 6.7367 0 0
195
+ M V30 108 C 17.7614 5.2721 0 0
196
+ M V30 109 O 18.3744 7.8257 0 0
197
+ M V30 110 O 15.062 14.1018 0 0
198
+ M V30 111 O -4.8241 1.9817 0 0
199
+ M V30 END ATOM
200
+ M V30 BEGIN BOND
201
+ M V30 1 1 2 3
202
+ M V30 2 1 3 4
203
+ M V30 3 1 6 7
204
+ M V30 4 1 7 8
205
+ M V30 5 1 8 9
206
+ M V30 6 1 9 10
207
+ M V30 7 1 1 2
208
+ M V30 8 1 3 12
209
+ M V30 9 1 4 5
210
+ M V30 10 1 5 6
211
+ M V30 11 2 6 13
212
+ M V30 12 1 10 11
213
+ M V30 13 1 11 15
214
+ M V30 14 1 15 16
215
+ M V30 15 1 15 17
216
+ M V30 16 2 10 14
217
+ M V30 17 1 18 19
218
+ M V30 18 1 19 20
219
+ M V30 19 1 22 23
220
+ M V30 20 1 23 24
221
+ M V30 21 1 26 27
222
+ M V30 22 1 27 28
223
+ M V30 23 1 28 29
224
+ M V30 24 1 29 30
225
+ M V30 25 2 26 33
226
+ M V30 26 2 20 32
227
+ M V30 27 1 20 21
228
+ M V30 28 1 21 22
229
+ M V30 29 1 24 25
230
+ M V30 30 1 25 26
231
+ M V30 31 1 30 31
232
+ M V30 32 1 31 34
233
+ M V30 33 1 35 36
234
+ M V30 34 1 36 37
235
+ M V30 35 1 37 38
236
+ M V30 36 1 34 35
237
+ M V30 37 1 38 39
238
+ M V30 38 1 34 39
239
+ M V30 39 1 38 40
240
+ M V30 40 1 35 43
241
+ M V30 41 1 43 44
242
+ M V30 42 1 44 45
243
+ M V30 43 2 44 46
244
+ M V30 44 1 36 42
245
+ M V30 45 1 37 41
246
+ M V30 46 1 40 47
247
+ M V30 47 1 18 48
248
+ M V30 48 1 15 49
249
+ M V30 49 1 50 51
250
+ M V30 50 1 51 52
251
+ M V30 51 1 54 55
252
+ M V30 52 1 55 56
253
+ M V30 53 1 58 59
254
+ M V30 54 1 59 60
255
+ M V30 55 2 58 64
256
+ M V30 56 2 52 63
257
+ M V30 57 1 52 53
258
+ M V30 58 1 53 54
259
+ M V30 59 1 56 57
260
+ M V30 60 1 57 58
261
+ M V30 61 1 61 62
262
+ M V30 62 1 62 65
263
+ M V30 63 1 66 67
264
+ M V30 64 1 67 68
265
+ M V30 65 1 68 69
266
+ M V30 66 1 65 66
267
+ M V30 67 1 69 70
268
+ M V30 68 1 65 70
269
+ M V30 69 1 69 71
270
+ M V30 70 1 66 74
271
+ M V30 71 1 74 75
272
+ M V30 72 1 75 76
273
+ M V30 73 2 75 77
274
+ M V30 74 1 67 73
275
+ M V30 75 1 68 72
276
+ M V30 76 1 71 78
277
+ M V30 77 1 50 79
278
+ M V30 78 1 49 79
279
+ M V30 79 1 60 80
280
+ M V30 80 1 80 61
281
+ M V30 81 1 81 82
282
+ M V30 82 1 82 83
283
+ M V30 83 1 85 86
284
+ M V30 84 1 86 87
285
+ M V30 85 1 89 90
286
+ M V30 86 1 90 91
287
+ M V30 87 1 91 92
288
+ M V30 88 1 92 93
289
+ M V30 89 2 89 96
290
+ M V30 90 2 83 95
291
+ M V30 91 1 83 84
292
+ M V30 92 1 84 85
293
+ M V30 93 1 87 88
294
+ M V30 94 1 88 89
295
+ M V30 95 1 93 94
296
+ M V30 96 1 94 97
297
+ M V30 97 1 98 99
298
+ M V30 98 1 99 100
299
+ M V30 99 1 100 101
300
+ M V30 100 1 97 98
301
+ M V30 101 1 101 102
302
+ M V30 102 1 97 102
303
+ M V30 103 1 101 103
304
+ M V30 104 1 98 106
305
+ M V30 105 1 106 107
306
+ M V30 106 1 107 108
307
+ M V30 107 2 107 109
308
+ M V30 108 1 99 105
309
+ M V30 109 1 100 104
310
+ M V30 110 1 103 110
311
+ M V30 111 1 81 111
312
+ M V30 112 1 16 111
313
+ M V30 113 1 17 48
314
+ M V30 END BOND
315
+ M V30 END CTAB
316
+ M END`;
317
+
318
+ const GALNACPRIME = `
319
+ Datagrok monomer library Nucleotides
320
+
321
+ 0 0 0 0 0 999 V3000
322
+ M V30 BEGIN CTAB
323
+ M V30 COUNTS 111 113 0 0 0
324
+ M V30 BEGIN ATOM
325
+ M V30 1 O 20.7313 0.7027 0 0
326
+ M V30 2 C 19.3976 -0.0673 0 0
327
+ M V30 3 C 18.0638 0.7027 0 0
328
+ M V30 4 C 16.7303 -0.0673 0 0
329
+ M V30 5 N 15.3965 0.7027 0 0
330
+ M V30 6 C 14.0628 -0.0673 0 0
331
+ M V30 7 C 12.7293 0.7027 0 0
332
+ M V30 8 C 11.3955 -0.0673 0 0
333
+ M V30 9 C 10.062 0.7027 0 0
334
+ M V30 10 C 8.7283 -0.0673 0 0
335
+ M V30 11 N 7.3947 0.7027 0 0
336
+ M V30 12 O 18.0638 2.2427 0 0
337
+ M V30 13 O 14.0628 -1.6073 0 0
338
+ M V30 14 O 8.7283 -1.6073 0 0
339
+ M V30 15 C 5.8547 0.7027 0 0
340
+ M V30 16 C 5.8547 -0.8373 0 0
341
+ M V30 17 C 5.8547 2.2427 0 0
342
+ M V30 18 C 3.4848 3.0127 0 0
343
+ M V30 19 C 2.4544 4.157 0 0
344
+ M V30 20 C 0.948 3.8368 0 0
345
+ M V30 21 N -0.0824 4.9813 0 0
346
+ M V30 22 C -1.5888 4.6612 0 0
347
+ M V30 23 C -2.6192 5.8056 0 0
348
+ M V30 24 C -4.1256 5.4855 0 0
349
+ M V30 25 N -5.156 6.6297 0 0
350
+ M V30 26 C -6.6624 6.3096 0 0
351
+ M V30 27 C -7.6928 7.4541 0 0
352
+ M V30 28 C -9.1992 7.1339 0 0
353
+ M V30 29 C -10.2296 8.2784 0 0
354
+ M V30 30 C -11.736 7.9583 0 0
355
+ M V30 31 O -12.7664 9.1027 0 0
356
+ M V30 32 O 0.4722 2.3723 0 0
357
+ M V30 33 O -7.1382 4.845 0 0
358
+ M V30 34 C -14.2728 8.7824 0 0
359
+ M V30 35 C -15.3032 9.9267 0 0
360
+ M V30 36 C -16.8098 9.6065 0 0
361
+ M V30 37 C -17.2856 8.1421 0 0
362
+ M V30 38 C -16.2552 6.9975 0 0
363
+ M V30 39 O -14.7486 7.3178 0 0
364
+ M V30 40 C -16.7312 5.5329 0 0
365
+ M V30 41 O -18.7918 7.8218 0 0
366
+ M V30 42 O -17.8404 10.751 0 0
367
+ M V30 43 N -14.8274 11.3914 0 0
368
+ M V30 44 C -15.7325 12.6372 0 0
369
+ M V30 45 C -15.2567 14.1018 0 0
370
+ M V30 46 O -17.2537 12.3963 0 0
371
+ M V30 47 O -18.2628 5.372 0 0
372
+ M V30 48 O 4.9494 3.4885 0 0
373
+ M V30 49 C 4.521 -0.0673 0 0
374
+ M V30 50 C 1.9414 -0.2026 0 0
375
+ M V30 51 C 0.6077 0.5674 0 0
376
+ M V30 52 C -0.726 -0.2026 0 0
377
+ M V30 53 N -2.0596 0.5674 0 0
378
+ M V30 54 C -3.3933 -0.2026 0 0
379
+ M V30 55 C -4.7271 0.5674 0 0
380
+ M V30 56 C -6.0606 -0.2026 0 0
381
+ M V30 57 N -7.3943 0.5674 0 0
382
+ M V30 58 C -8.7281 -0.2026 0 0
383
+ M V30 59 C -10.0618 0.5674 0 0
384
+ M V30 60 C -11.3953 -0.2026 0 0
385
+ M V30 61 C -14.0628 -0.2026 0 0
386
+ M V30 62 O -15.3964 0.5674 0 0
387
+ M V30 63 O -0.726 -1.7426 0 0
388
+ M V30 64 O -8.7281 -1.7426 0 0
389
+ M V30 65 C -16.7301 -0.2026 0 0
390
+ M V30 66 C -18.0638 0.5676 0 0
391
+ M V30 67 C -19.3976 -0.2026 0 0
392
+ M V30 68 C -19.3974 -1.7426 0 0
393
+ M V30 69 C -18.0638 -2.5126 0 0
394
+ M V30 70 O -16.7301 -1.7426 0 0
395
+ M V30 71 C -18.064 -4.0526 0 0
396
+ M V30 72 O -20.7311 -2.5126 0 0
397
+ M V30 73 O -20.7313 0.5674 0 0
398
+ M V30 74 N -18.0638 2.1076 0 0
399
+ M V30 75 C -19.3096 3.0127 0 0
400
+ M V30 76 C -19.3096 4.5527 0 0
401
+ M V30 77 O -20.6818 2.3135 0 0
402
+ M V30 78 O -19.4709 -4.6791 0 0
403
+ M V30 79 O 3.1872 0.7027 0 0
404
+ M V30 80 C -12.7291 0.5674 0 0
405
+ M V30 81 C 3.919 -3.2277 0 0
406
+ M V30 82 C 2.4126 -2.9076 0 0
407
+ M V30 83 C 1.3822 -4.0519 0 0
408
+ M V30 84 N -0.1242 -3.7317 0 0
409
+ M V30 85 C -1.1546 -4.8762 0 0
410
+ M V30 86 C -2.661 -4.5561 0 0
411
+ M V30 87 C -3.6914 -5.7005 0 0
412
+ M V30 88 N -5.1978 -5.3804 0 0
413
+ M V30 89 C -6.2282 -6.5248 0 0
414
+ M V30 90 C -7.7346 -6.2045 0 0
415
+ M V30 91 C -8.765 -7.349 0 0
416
+ M V30 92 C -10.2714 -7.0288 0 0
417
+ M V30 93 C -11.3018 -8.1733 0 0
418
+ M V30 94 O -12.8082 -7.8532 0 0
419
+ M V30 95 O 1.858 -5.5167 0 0
420
+ M V30 96 O -5.7524 -7.9894 0 0
421
+ M V30 97 C -13.8386 -8.9976 0 0
422
+ M V30 98 C -15.345 -8.6773 0 0
423
+ M V30 99 C -16.3756 -9.8219 0 0
424
+ M V30 100 C -15.8996 -11.2863 0 0
425
+ M V30 101 C -14.3934 -11.6068 0 0
426
+ M V30 102 O -13.3628 -10.4622 0 0
427
+ M V30 103 C -13.9176 -13.0714 0 0
428
+ M V30 104 O -16.93 -12.4308 0 0
429
+ M V30 105 O -17.882 -9.5018 0 0
430
+ M V30 106 N -15.8208 -7.2127 0 0
431
+ M V30 107 C -17.2856 -6.7367 0 0
432
+ M V30 108 C -17.7614 -5.2721 0 0
433
+ M V30 109 O -18.3744 -7.8257 0 0
434
+ M V30 110 O -15.062 -14.1018 0 0
435
+ M V30 111 O 4.8241 -1.9817 0 0
436
+ M V30 END ATOM
437
+ M V30 BEGIN BOND
438
+ M V30 1 1 2 3
439
+ M V30 2 1 3 4
440
+ M V30 3 1 6 7
441
+ M V30 4 1 7 8
442
+ M V30 5 1 8 9
443
+ M V30 6 1 9 10
444
+ M V30 7 1 1 2
445
+ M V30 8 1 3 12
446
+ M V30 9 1 4 5
447
+ M V30 10 1 5 6
448
+ M V30 11 2 6 13
449
+ M V30 12 1 10 11
450
+ M V30 13 1 11 15
451
+ M V30 14 1 15 16
452
+ M V30 15 1 15 17
453
+ M V30 16 2 10 14
454
+ M V30 17 1 18 19
455
+ M V30 18 1 19 20
456
+ M V30 19 1 22 23
457
+ M V30 20 1 23 24
458
+ M V30 21 1 26 27
459
+ M V30 22 1 27 28
460
+ M V30 23 1 28 29
461
+ M V30 24 1 29 30
462
+ M V30 25 2 26 33
463
+ M V30 26 2 20 32
464
+ M V30 27 1 20 21
465
+ M V30 28 1 21 22
466
+ M V30 29 1 24 25
467
+ M V30 30 1 25 26
468
+ M V30 31 1 30 31
469
+ M V30 32 1 31 34
470
+ M V30 33 1 35 36
471
+ M V30 34 1 36 37
472
+ M V30 35 1 37 38
473
+ M V30 36 1 34 35
474
+ M V30 37 1 38 39
475
+ M V30 38 1 34 39
476
+ M V30 39 1 38 40
477
+ M V30 40 1 35 43
478
+ M V30 41 1 43 44
479
+ M V30 42 1 44 45
480
+ M V30 43 2 44 46
481
+ M V30 44 1 36 42
482
+ M V30 45 1 37 41
483
+ M V30 46 1 40 47
484
+ M V30 47 1 18 48
485
+ M V30 48 1 15 49
486
+ M V30 49 1 50 51
487
+ M V30 50 1 51 52
488
+ M V30 51 1 54 55
489
+ M V30 52 1 55 56
490
+ M V30 53 1 58 59
491
+ M V30 54 1 59 60
492
+ M V30 55 2 58 64
493
+ M V30 56 2 52 63
494
+ M V30 57 1 52 53
495
+ M V30 58 1 53 54
496
+ M V30 59 1 56 57
497
+ M V30 60 1 57 58
498
+ M V30 61 1 61 62
499
+ M V30 62 1 62 65
500
+ M V30 63 1 66 67
501
+ M V30 64 1 67 68
502
+ M V30 65 1 68 69
503
+ M V30 66 1 65 66
504
+ M V30 67 1 69 70
505
+ M V30 68 1 65 70
506
+ M V30 69 1 69 71
507
+ M V30 70 1 66 74
508
+ M V30 71 1 74 75
509
+ M V30 72 1 75 76
510
+ M V30 73 2 75 77
511
+ M V30 74 1 67 73
512
+ M V30 75 1 68 72
513
+ M V30 76 1 71 78
514
+ M V30 77 1 50 79
515
+ M V30 78 1 49 79
516
+ M V30 79 1 60 80
517
+ M V30 80 1 80 61
518
+ M V30 81 1 81 82
519
+ M V30 82 1 82 83
520
+ M V30 83 1 85 86
521
+ M V30 84 1 86 87
522
+ M V30 85 1 89 90
523
+ M V30 86 1 90 91
524
+ M V30 87 1 91 92
525
+ M V30 88 1 92 93
526
+ M V30 89 2 89 96
527
+ M V30 90 2 83 95
528
+ M V30 91 1 83 84
529
+ M V30 92 1 84 85
530
+ M V30 93 1 87 88
531
+ M V30 94 1 88 89
532
+ M V30 95 1 93 94
533
+ M V30 96 1 94 97
534
+ M V30 97 1 98 99
535
+ M V30 98 1 99 100
536
+ M V30 99 1 100 101
537
+ M V30 100 1 97 98
538
+ M V30 101 1 101 102
539
+ M V30 102 1 97 102
540
+ M V30 103 1 101 103
541
+ M V30 104 1 98 106
542
+ M V30 105 1 106 107
543
+ M V30 106 1 107 108
544
+ M V30 107 2 107 109
545
+ M V30 108 1 99 105
546
+ M V30 109 1 100 104
547
+ M V30 110 1 103 110
548
+ M V30 111 1 81 111
549
+ M V30 112 1 16 111
550
+ M V30 113 1 17 48
551
+ M V30 END BOND
552
+ M V30 END CTAB
553
+ M END`;
554
+
81
555
  export function getNucleotidesMol(smilesCodes: string[]) {
82
556
  const molBlocks: string[] = [];
83
557
 
@@ -85,6 +559,8 @@ export function getNucleotidesMol(smilesCodes: string[]) {
85
559
  smilesCodes[i] == 'OP(=O)(O)O' ? molBlocks.push(PHOSHATE) :
86
560
  smilesCodes[i] == 'OP(=O)(S)O' ? molBlocks.push(THIOPHOSHATE) :
87
561
  smilesCodes[i] == 'O[C@@H]1C[C@@H]O[C@H]1CO' ? molBlocks.push(rotateNucleotidesV3000(INVABASIC)) :
562
+ smilesCodes[i] == 'OCC(O)CNC(=O)CCCC(=O)NC(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)' ? molBlocks.push(GALNAC) :
563
+ smilesCodes[i] == 'C(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)(COCCC(=O)NCCCNC(=O)CCCCOC2OC(CO)C(O)C(O)C2NC(=O)C)NC(=O)CCCC(=O)NCC(O)CO' ? molBlocks.push(GALNACPRIME) :
88
564
  molBlocks.push(rotateNucleotidesV3000(smilesCodes[i]));
89
565
  }
90
566
 
@@ -29,8 +29,8 @@ export function saveSenseAntiSense() {
29
29
  const moleculeSvgDiv = ui.block([]);
30
30
  const ssInput = ui.textInput('Sense Strand', '');
31
31
  const asInput = ui.textInput('Anti Sense', '');
32
- const straight = '5\' ->3\'';
33
- const inverse = '3\' ->5\'';
32
+ const straight = "5 prime -> 3 prime";
33
+ const inverse = "3 prime -> 5 prime";
34
34
  let ssInverse = false;
35
35
  let asInverse = false;
36
36
 
@@ -1,8 +1,7 @@
1
1
 
2
2
  import {map, SYNTHESIZERS, TECHNOLOGIES, MODIFICATIONS, delimiter, gcrsCodesWithoutSmiles} from './map';
3
3
  import {asoGapmersNucleotidesToBioSpring, asoGapmersNucleotidesToGcrs,
4
- asoGapmersBioSpringToNucleotides, asoGapmersBioSpringToGcrs, asoGapmersGcrsToNucleotides,
5
- asoGapmersGcrsToBioSpring, gcrsToMermade12, siRnaNucleotideToBioSpringSenseStrand,
4
+ asoGapmersBioSpringToNucleotides, asoGapmersBioSpringToGcrs, gcrsToMermade12, siRnaNucleotideToBioSpringSenseStrand,
6
5
  siRnaNucleotideToAxolabsSenseStrand, siRnaNucleotidesToGcrs, siRnaBioSpringToNucleotides,
7
6
  siRnaBioSpringToAxolabs, siRnaBioSpringToGcrs, siRnaAxolabsToNucleotides,
8
7
  siRnaAxolabsToBioSpring, siRnaAxolabsToGcrs, siRnaGcrsToNucleotides,
@@ -95,7 +94,7 @@ function sortByStringLengthInDescendingOrder(array: string[]): string[] {
95
94
  export function isValidSequence(sequence: string, format: string | null): {
96
95
  indexOfFirstNotValidChar: number,
97
96
  synthesizer: string[] | null,
98
- technology: string[] | null
97
+ // technology: string[] | null
99
98
  } {
100
99
  const possibleSynthesizers = format == null ?
101
100
  getListOfPossibleSynthesizersByFirstMatchedCode(sequence) :
@@ -114,49 +113,51 @@ export function isValidSequence(sequence: string, format: string | null): {
114
113
  // .show();
115
114
  // } else if (possibleSynthesizers.length == 0)
116
115
  if (possibleSynthesizers.length == 0)
117
- return {indexOfFirstNotValidChar: 0, synthesizer: null, technology: null};
116
+ return {indexOfFirstNotValidChar: 0, synthesizer: null};//, technology: null};
118
117
 
119
- let outputIndex = 0;
118
+ const outputIndices = Array(possibleSynthesizers.length).fill(0);
120
119
 
121
120
  const firstUniqueCharacters = ['r', 'd'];
122
121
  const nucleotides = ['A', 'U', 'T', 'C', 'G'];
123
-
124
- possibleSynthesizers.forEach((synthesizer) => {
122
+ possibleSynthesizers.forEach(function(synthesizer, i) {
125
123
  const codes = sortByStringLengthInDescendingOrder(getAllCodesOfSynthesizer(synthesizer));
126
- while (outputIndex < sequence.length) {
127
- const matchedCode = codes.find((c) => c == sequence.slice(outputIndex, outputIndex + c.length));
124
+ while (outputIndices[i] < sequence.length) {
125
+ const matchedCode = codes.find((c) => c == sequence.slice(outputIndices[i], outputIndices[i] + c.length));
128
126
 
129
127
  if (matchedCode == null)
130
128
  break;
131
129
 
132
130
  if ( // for mistake pattern 'rAA'
133
- outputIndex > 1 &&
134
- nucleotides.includes(sequence[outputIndex]) &&
135
- firstUniqueCharacters.includes(sequence[outputIndex - 2])
131
+ outputIndices[i] > 1 &&
132
+ nucleotides.includes(sequence[outputIndices[i]]) &&
133
+ firstUniqueCharacters.includes(sequence[outputIndices[i] - 2])
136
134
  ) break;
137
135
 
138
136
  if ( // for mistake pattern 'ArA'
139
- firstUniqueCharacters.includes(sequence[outputIndex + 1]) &&
140
- nucleotides.includes(sequence[outputIndex])
137
+ firstUniqueCharacters.includes(sequence[outputIndices[i] + 1]) &&
138
+ nucleotides.includes(sequence[outputIndices[i]])
141
139
  ) {
142
- outputIndex++;
140
+ outputIndices[i]++;
143
141
  break;
144
142
  }
145
143
 
146
- outputIndex += matchedCode.length;
144
+ outputIndices[i] += matchedCode.length;
147
145
  }
148
146
  });
149
147
 
148
+ const outputIndex = Math.max(...outputIndices);
149
+ const synthesizer = possibleSynthesizers[outputIndices.indexOf(outputIndex)];
150
150
  const indexOfFirstNotValidChar = (outputIndex == sequence.length) ? -1 : outputIndex;
151
151
  if (indexOfFirstNotValidChar != -1) {
152
152
  return {
153
153
  indexOfFirstNotValidChar: indexOfFirstNotValidChar,
154
- synthesizer: possibleSynthesizers,
155
- technology: null,
154
+ synthesizer: [synthesizer],
155
+ // technology: null,
156
156
  };
157
157
  }
158
158
 
159
- const possibleTechnologies = getListOfPossibleTechnologiesByFirstMatchedCode(sequence, possibleSynthesizers[0]);
159
+ // const possibleTechnologies =
160
+ // getListOfPossibleTechnologiesByFirstMatchedCode(sequence, possibleSynthesizers[outputIndex]);
160
161
 
161
162
  // if (possibleTechnologies.length > 1) {
162
163
  // const technology = ui.choiceInput('Choose technology from list: ', possibleTechnologies[0],
@@ -173,7 +174,7 @@ export function isValidSequence(sequence: string, format: string | null): {
173
174
  // if (possibleTechnologies.length == 0)
174
175
  // return {indexOfFirstNotValidChar: 0, synthesizer: [possibleSynthesizers[3]], technology: null};
175
176
 
176
- outputIndex = 0;
177
+ // outputIndex = 0;
177
178
 
178
179
  // possibleTechnologies.forEach((technology: string) => {
179
180
  // const codes = Object.keys(map[possibleSynthesizers[0]][technology]);
@@ -203,8 +204,8 @@ export function isValidSequence(sequence: string, format: string | null): {
203
204
 
204
205
  return {
205
206
  indexOfFirstNotValidChar: indexOfFirstNotValidChar,
206
- synthesizer: possibleSynthesizers,
207
- technology: [possibleTechnologies[outputIndex]],
207
+ synthesizer: [synthesizer],
208
+ // technology: [possibleTechnologies[0]],
208
209
  };
209
210
  }
210
211
 
@@ -248,7 +249,7 @@ function getListOfPossibleTechnologiesByFirstMatchedCode(sequence: string, synth
248
249
  }
249
250
 
250
251
  export function convertSequence(sequence: string, output: {
251
- indexOfFirstNotValidChar: number, synthesizer: string[] | null, technology: string[] | null}) {
252
+ indexOfFirstNotValidChar: number, synthesizer: string[] | null}) {//, technology: string[] | null}) {
252
253
  if (output.indexOfFirstNotValidChar != -1) {
253
254
  return {
254
255
  // type: '',
@@ -264,7 +265,8 @@ export function convertSequence(sequence: string, output: {
264
265
  GCRS: asoGapmersNucleotidesToGcrs(sequence),
265
266
  };
266
267
  }
267
- if (output.synthesizer!.includes(SYNTHESIZERS.BIOSPRING) && output.technology!.includes(TECHNOLOGIES.ASO_GAPMERS)) {
268
+ if (output.synthesizer!.includes(SYNTHESIZERS.BIOSPRING)) {
269
+ // && output.technology!.includes(TECHNOLOGIES.ASO_GAPMERS)) {
268
270
  return {
269
271
  type: SYNTHESIZERS.BIOSPRING + ' ' + TECHNOLOGIES.ASO_GAPMERS,
270
272
  Nucleotides: asoGapmersBioSpringToNucleotides(sequence),
@@ -272,17 +274,19 @@ export function convertSequence(sequence: string, output: {
272
274
  GCRS: asoGapmersBioSpringToGcrs(sequence),
273
275
  };
274
276
  }
275
- if (output.synthesizer!.includes(SYNTHESIZERS.GCRS) && output.technology!.includes(TECHNOLOGIES.ASO_GAPMERS)) {
277
+ if (output.synthesizer!.includes(SYNTHESIZERS.GCRS)) { // && output.technology!.includes(TECHNOLOGIES.ASO_GAPMERS)) {
276
278
  return {
277
279
  type: SYNTHESIZERS.GCRS + ' ' + TECHNOLOGIES.ASO_GAPMERS,
278
- Nucleotides: asoGapmersGcrsToNucleotides(sequence),
279
- BioSpring: asoGapmersGcrsToBioSpring(sequence),
280
+ Nucleotides: gcrsToNucleotides(sequence),
281
+ BioSpring: siRnaGcrsToBioSpring(sequence),
282
+ Axolabs: siRnaGcrsToAxolabs(sequence),
280
283
  Mermade12: gcrsToMermade12(sequence),
281
284
  GCRS: sequence,
282
285
  LCMS: gcrsToLcms(sequence),
283
286
  };
284
287
  }
285
- if (output.synthesizer!.includes(SYNTHESIZERS.RAW_NUCLEOTIDES) && output.technology!.includes(TECHNOLOGIES.RNA)) {
288
+ if (output.synthesizer!.includes(SYNTHESIZERS.RAW_NUCLEOTIDES)) {
289
+ // && output.technology!.includes(TECHNOLOGIES.RNA)) {
286
290
  return {
287
291
  type: SYNTHESIZERS.RAW_NUCLEOTIDES + ' ' + TECHNOLOGIES.RNA,
288
292
  Nucleotides: sequence,
@@ -291,7 +295,7 @@ export function convertSequence(sequence: string, output: {
291
295
  GCRS: siRnaNucleotidesToGcrs(sequence),
292
296
  };
293
297
  }
294
- if (output.synthesizer!.includes(SYNTHESIZERS.BIOSPRING) && output.technology!.includes(TECHNOLOGIES.SI_RNA)) {
298
+ if (output.synthesizer!.includes(SYNTHESIZERS.BIOSPRING)) { // && output.technology!.includes(TECHNOLOGIES.SI_RNA)) {
295
299
  return {
296
300
  type: SYNTHESIZERS.BIOSPRING + ' ' + TECHNOLOGIES.SI_RNA,
297
301
  Nucleotides: siRnaBioSpringToNucleotides(sequence),
@@ -309,7 +313,7 @@ export function convertSequence(sequence: string, output: {
309
313
  GCRS: siRnaAxolabsToGcrs(sequence),
310
314
  };
311
315
  }
312
- if (output.synthesizer!.includes(SYNTHESIZERS.GCRS) && output.technology!.includes(TECHNOLOGIES.SI_RNA)) {
316
+ if (output.synthesizer!.includes(SYNTHESIZERS.GCRS)) { // && output.technology!.includes(TECHNOLOGIES.SI_RNA)) {
313
317
  return {
314
318
  type: SYNTHESIZERS.GCRS + ' ' + TECHNOLOGIES.SI_RNA,
315
319
  Nucleotides: siRnaGcrsToNucleotides(sequence),
@@ -1,4 +1,4 @@
1
- <html><head><meta charset="utf-8"/><title>SequenceTranslator Test Report. Datagrok version datagrok/datagrok:latest SHA=7770371320b2. Commit ca4b554d.</title><style type="text/css">html,
1
+ <html><head><meta charset="utf-8"/><title>SequenceTranslator Test Report. Datagrok version datagrok/datagrok:latest SHA=916a90d7d48b. Commit 0c0e8404.</title><style type="text/css">html,
2
2
  body {
3
3
  font-family: Arial, Helvetica, sans-serif;
4
4
  font-size: 1rem;
@@ -229,7 +229,7 @@ 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">SequenceTranslator Test Report. Datagrok version datagrok/datagrok:latest SHA=7770371320b2. Commit ca4b554d.</h1></header><div id="metadata-container"><div id="timestamp">Started: 2022-09-27 11:43:44</div><div id="summary"><div id="suite-summary"><div class="summary-total">Suites (1)</div><div class="summary-passed">1 passed</div><div class="summary-failed summary-empty">0 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">1 passed</div><div class="summary-failed summary-empty">0 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/SequenceTranslator/src/__jest__/remote.test.ts</div><div class="suite-time warn">23.627s</div></div><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename"> </div><div class="test-title">TEST</div><div class="test-status">passed</div><div class="test-duration">3.851s</div></div></div></div><div class="suite-consolelog"><div class="suite-consolelog-header">Console Log</div><div class="suite-consolelog-item"><pre class="suite-consolelog-item-origin"> at Object.&lt;anonymous&gt; (/home/runner/work/public/public/packages/SequenceTranslator/src/__jest__/test-node.ts:62:11)
232
+ </style></head><body><div id="jesthtml-content"><header><h1 id="title">SequenceTranslator Test Report. Datagrok version datagrok/datagrok:latest SHA=916a90d7d48b. Commit 0c0e8404.</h1></header><div id="metadata-container"><div id="timestamp">Started: 2022-10-19 11:03:39</div><div id="summary"><div id="suite-summary"><div class="summary-total">Suites (1)</div><div class="summary-passed">1 passed</div><div class="summary-failed summary-empty">0 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">1 passed</div><div class="summary-failed summary-empty">0 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/SequenceTranslator/src/__jest__/remote.test.ts</div><div class="suite-time warn">19.305s</div></div><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename"> </div><div class="test-title">TEST</div><div class="test-status">passed</div><div class="test-duration">3.874s</div></div></div></div><div class="suite-consolelog"><div class="suite-consolelog-header">Console Log</div><div class="suite-consolelog-item"><pre class="suite-consolelog-item-origin"> at Object.&lt;anonymous&gt; (/home/runner/work/public/public/packages/SequenceTranslator/src/__jest__/test-node.ts:62:11)
233
233
  at Generator.next (&lt;anonymous&gt;)
234
234
  at fulfilled (/home/runner/work/public/public/packages/SequenceTranslator/src/__jest__/test-node.ts:28:58)
235
235
  at processTicksAndRejections (internal/process/task_queues.js:97:5)</pre><pre class="suite-consolelog-item-message">Using web root: http://localhost:8080</pre></div><div class="suite-consolelog-item"><pre class="suite-consolelog-item-origin"> at /home/runner/work/public/public/packages/SequenceTranslator/src/__jest__/remote.test.ts:40:11
@@ -251,6 +251,6 @@ Test result : Success : 0 : SequenceTranslator.sequence-translator.acacacsacsac
251
251
  Test result : Success : 0 : SequenceTranslator.sequence-translator.cccgggusug : OK
252
252
  Test result : Success : 0 : SequenceTranslator.sequence-translator.UfAfCfGfGfCfAfUf : OK
253
253
  Test result : Success : 1 : SequenceTranslator.sequence-translator.(invabasic)cuCfuUfsc : OK
254
- Test result : Success : 0 : SequenceTranslator.sequence-translator.(invabasic)usAfsucuCfuUfAfgcugUfgCfacususu : OK
255
- Test result : Success : 0 : SequenceTranslator.sequence-translator.(invabasic)asacgGfuGfCfAfacucuauuca : OK
254
+ Test result : Success : 1 : SequenceTranslator.sequence-translator.(invabasic)usAfsucuCfuUfAfgcugUfgCfacususu : OK
255
+ Test result : Success : 1 : SequenceTranslator.sequence-translator.(invabasic)asacgGfuGfCfAfacucuauuca : OK
256
256
  </pre></div></div></div></div></body></html>