@datagrok/sequence-translator 1.0.13 → 1.0.15
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 +70674 -1436
- package/dist/package.js +69844 -4386
- package/package.json +27 -22
- package/scripts/build-monomer-lib.py +178 -0
- package/setup-unlink-clean.cmd +14 -0
- package/setup.cmd +14 -11
- package/setup.sh +37 -0
- package/src/autostart/constants.ts +12 -0
- package/src/autostart/registration.ts +18 -4
- package/src/axolabs/constants.ts +14 -14
- package/src/axolabs/define-pattern.ts +13 -12
- package/src/axolabs/draw-svg.ts +140 -201
- package/src/axolabs/helpers.ts +94 -0
- package/src/main/main-view.ts +90 -29
- package/src/package.ts +20 -2
- package/src/structures-works/const.ts +5 -0
- package/src/structures-works/converters.ts +29 -27
- package/src/structures-works/from-monomers.ts +187 -31
- package/src/structures-works/map.ts +6 -7
- package/src/structures-works/mol-transformations.ts +172 -622
- package/src/structures-works/save-sense-antisense.ts +6 -3
- package/src/structures-works/sequence-codes-tools.ts +8 -10
- package/{test-SequenceTranslator-62cc009524f3-4a9916b0.html → test-SequenceTranslator-91c83d8913ff-f94596bc.html} +10 -10
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import * as grok from 'datagrok-api/grok';
|
|
1
2
|
import * as ui from 'datagrok-api/ui';
|
|
3
|
+
import * as DG from 'datagrok-api/dg';
|
|
4
|
+
|
|
2
5
|
import {download} from '../helpers';
|
|
3
6
|
import {sequenceToMolV3000} from '../structures-works/from-monomers';
|
|
4
7
|
import {linkStrandsV3000} from '../structures-works/mol-transformations';
|
|
5
8
|
import {getFormat} from '../structures-works/sequence-codes-tools';
|
|
6
9
|
|
|
7
|
-
export function saveSdf(as: string, ss: string,
|
|
8
|
-
oneEntity: boolean, useChirality: boolean,
|
|
10
|
+
export function saveSdf(as: string, ss: string,
|
|
11
|
+
oneEntity: boolean, useChirality: boolean,
|
|
9
12
|
invertSS: boolean, invertAS: boolean,
|
|
10
13
|
as2: string | null = null, invertAS2: boolean | null) {
|
|
11
14
|
const formatAs = getFormat(as);
|
|
@@ -25,7 +28,7 @@ export function saveSdf(as: string, ss: string,
|
|
|
25
28
|
if (oneEntity) {
|
|
26
29
|
const antiStrands = molAS2 == null ? [molAS] : [molAS, molAS2];
|
|
27
30
|
result = linkStrandsV3000({senseStrands: [molSS], antiStrands: antiStrands}, useChirality) + '\n$$$$\n';
|
|
28
|
-
|
|
31
|
+
|
|
29
32
|
} else {
|
|
30
33
|
result =
|
|
31
34
|
molSS + '\n' +
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import {map, SYNTHESIZERS, TECHNOLOGIES, MODIFICATIONS,
|
|
2
|
+
import {map, SYNTHESIZERS, TECHNOLOGIES, MODIFICATIONS, DELIMITER, gcrsCodesWithoutSmiles, NUCLEOTIDES} from './map';
|
|
3
3
|
import {sortByStringLengthInDescendingOrder} from '../helpers';
|
|
4
4
|
import {asoGapmersNucleotidesToBioSpring, asoGapmersNucleotidesToGcrs,
|
|
5
5
|
asoGapmersBioSpringToNucleotides, asoGapmersBioSpringToGcrs, gcrsToMermade12, siRnaNucleotideToBioSpringSenseStrand,
|
|
@@ -20,7 +20,6 @@ export function getFormat(sequence: string): string | null {
|
|
|
20
20
|
let outputIndex = 0;
|
|
21
21
|
|
|
22
22
|
const firstUniqueCharacters = ['r', 'd'];
|
|
23
|
-
const nucleotides = ['A', 'U', 'T', 'C', 'G'];
|
|
24
23
|
|
|
25
24
|
possibleSynthesizers.forEach((synthesizer) => {
|
|
26
25
|
const codes = getAllCodesOfSynthesizer(synthesizer);
|
|
@@ -32,13 +31,13 @@ export function getFormat(sequence: string): string | null {
|
|
|
32
31
|
|
|
33
32
|
if ( // for mistake pattern 'rAA'
|
|
34
33
|
outputIndex > 1 &&
|
|
35
|
-
|
|
34
|
+
NUCLEOTIDES.includes(sequence[outputIndex]) &&
|
|
36
35
|
firstUniqueCharacters.includes(sequence[outputIndex - 2])
|
|
37
36
|
) break;
|
|
38
37
|
|
|
39
38
|
if ( // for mistake pattern 'ArA'
|
|
40
39
|
firstUniqueCharacters.includes(sequence[outputIndex + 1]) &&
|
|
41
|
-
|
|
40
|
+
NUCLEOTIDES.includes(sequence[outputIndex])
|
|
42
41
|
) {
|
|
43
42
|
outputIndex++;
|
|
44
43
|
break;
|
|
@@ -69,13 +68,13 @@ export function getFormat(sequence: string): string | null {
|
|
|
69
68
|
|
|
70
69
|
if ( // for mistake pattern 'rAA'
|
|
71
70
|
outputIndex > 1 &&
|
|
72
|
-
|
|
71
|
+
NUCLEOTIDES.includes(sequence[outputIndex]) &&
|
|
73
72
|
firstUniqueCharacters.includes(sequence[outputIndex - 2])
|
|
74
73
|
) break;
|
|
75
74
|
|
|
76
75
|
if ( // for mistake pattern 'ArA'
|
|
77
76
|
firstUniqueCharacters.includes(sequence[outputIndex + 1]) &&
|
|
78
|
-
|
|
77
|
+
NUCLEOTIDES.includes(sequence[outputIndex])
|
|
79
78
|
) {
|
|
80
79
|
outputIndex++;
|
|
81
80
|
break;
|
|
@@ -116,7 +115,6 @@ export function isValidSequence(sequence: string, format: string | null): {
|
|
|
116
115
|
const outputIndices = Array(possibleSynthesizers.length).fill(0);
|
|
117
116
|
|
|
118
117
|
const firstUniqueCharacters = ['r', 'd'];
|
|
119
|
-
const nucleotides = ['A', 'U', 'T', 'C', 'G'];
|
|
120
118
|
possibleSynthesizers.forEach(function(synthesizer, i) {
|
|
121
119
|
const codes = sortByStringLengthInDescendingOrder(getAllCodesOfSynthesizer(synthesizer));
|
|
122
120
|
while (outputIndices[i] < sequence.length) {
|
|
@@ -127,13 +125,13 @@ export function isValidSequence(sequence: string, format: string | null): {
|
|
|
127
125
|
|
|
128
126
|
if ( // for mistake pattern 'rAA'
|
|
129
127
|
outputIndices[i] > 1 &&
|
|
130
|
-
|
|
128
|
+
NUCLEOTIDES.includes(sequence[outputIndices[i]]) &&
|
|
131
129
|
firstUniqueCharacters.includes(sequence[outputIndices[i] - 2])
|
|
132
130
|
) break;
|
|
133
131
|
|
|
134
132
|
if ( // for mistake pattern 'ArA'
|
|
135
133
|
firstUniqueCharacters.includes(sequence[outputIndices[i] + 1]) &&
|
|
136
|
-
|
|
134
|
+
NUCLEOTIDES.includes(sequence[outputIndices[i]])
|
|
137
135
|
) {
|
|
138
136
|
outputIndices[i]++;
|
|
139
137
|
break;
|
|
@@ -211,7 +209,7 @@ export function getAllCodesOfSynthesizer(synthesizer: string): string[] {
|
|
|
211
209
|
let codes: string[] = [];
|
|
212
210
|
for (const technology of Object.keys(map[synthesizer]))
|
|
213
211
|
codes = codes.concat(Object.keys(map[synthesizer][technology]));
|
|
214
|
-
return codes.concat(Object.keys(MODIFICATIONS)).concat(
|
|
212
|
+
return codes.concat(Object.keys(MODIFICATIONS)).concat(DELIMITER);
|
|
215
213
|
}
|
|
216
214
|
|
|
217
215
|
function getListOfPossibleSynthesizersByFirstMatchedCode(sequence: string): string[] {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<html><head><meta charset="utf-8"/><title>SequenceTranslator Test Report. Datagrok version datagrok/datagrok:latest SHA=
|
|
1
|
+
<html><head><meta charset="utf-8"/><title>SequenceTranslator Test Report. Datagrok version datagrok/datagrok:latest SHA=91c83d8913ff. Commit f94596bc.</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=
|
|
232
|
+
</style></head><body><div id="jesthtml-content"><header><h1 id="title">SequenceTranslator Test Report. Datagrok version datagrok/datagrok:latest SHA=91c83d8913ff. Commit f94596bc.</h1></header><div id="metadata-container"><div id="timestamp">Started: 2022-11-29 11:55:21</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">18.993s</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">5.501s</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.<anonymous> (/home/runner/work/public/public/packages/SequenceTranslator/src/__jest__/test-node.ts:62:11)
|
|
233
233
|
at Generator.next (<anonymous>)
|
|
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
|
|
@@ -243,16 +243,16 @@ header {
|
|
|
243
243
|
at Generator.next (<anonymous>)
|
|
244
244
|
at fulfilled (/home/runner/work/public/public/packages/SequenceTranslator/src/__jest__/remote.test.ts:28:58)
|
|
245
245
|
at processTicksAndRejections (internal/process/task_queues.js:97:5)</pre><pre class="suite-consolelog-item-message">Test result : Success : 1 : SequenceTranslator.sequence-translator.usCfCfUfGfAf : OK
|
|
246
|
-
Test result : Success :
|
|
247
|
-
Test result : Success :
|
|
246
|
+
Test result : Success : 0 : SequenceTranslator.sequence-translator.usAfsusgsgsg : OK
|
|
247
|
+
Test result : Success : 1 : SequenceTranslator.sequence-translator.UfUfUfsCfsuacg : OK
|
|
248
248
|
Test result : Success : 0 : SequenceTranslator.sequence-translator.susususauasu : OK
|
|
249
|
-
Test result : Success :
|
|
250
|
-
Test result : Success :
|
|
251
|
-
Test result : Success :
|
|
249
|
+
Test result : Success : 1 : SequenceTranslator.sequence-translator.CfGfCfsGfsCf : OK
|
|
250
|
+
Test result : Success : 0 : SequenceTranslator.sequence-translator.acacacsacsac : OK
|
|
251
|
+
Test result : Success : 1 : SequenceTranslator.sequence-translator.cccgggusug : OK
|
|
252
252
|
Test result : Success : 0 : SequenceTranslator.sequence-translator.UfAfCfGfGfCfAfUf : OK
|
|
253
|
-
Test result : Success :
|
|
254
|
-
Test result : Success :
|
|
255
|
-
Test result : Success :
|
|
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 : 1 : SequenceTranslator.sequence-translator.(invabasic)asacgGfuGfCfAfacucuauuca : OK
|
|
256
256
|
</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:74:11
|
|
257
257
|
at Generator.next (<anonymous>)
|
|
258
258
|
at fulfilled (/home/runner/work/public/public/packages/SequenceTranslator/src/__jest__/remote.test.ts:28:58)
|