@datagrok/bio 1.7.0 → 1.7.3
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/detectors.js +2 -1
- package/dist/package-test.js +450 -377
- package/dist/package.js +328 -340
- package/files/{samples → tests}/peptides_complex_msa.csv +0 -0
- package/files/{samples → tests}/peptides_simple_msa.csv +0 -0
- package/files/{samples/testSmiles.csv → tests/sar-small.csv} +0 -0
- package/files/{samples → tests}/testDemog.csv +0 -0
- package/files/{samples → tests}/testHelm.csv +0 -0
- package/files/{samples → tests}/testId.csv +0 -0
- package/files/tests/testSmiles.csv +201 -0
- package/files/{samples → tests}/testSmiles2.csv +0 -0
- package/package.json +4 -7
- package/src/package-test.ts +1 -1
- package/src/package.ts +13 -16
- package/src/tests/WebLogo-test.ts +18 -0
- package/src/tests/activity-cliffs-tests.ts +14 -9
- package/src/tests/convert-test.ts +42 -1
- package/src/tests/detectors-test.ts +12 -6
- package/src/tests/renderer-test.ts +8 -2
- package/src/tests/sequence-space-test.ts +7 -3
- package/src/tests/splitters-test.ts +35 -0
- package/src/utils/cell-renderer.ts +23 -25
- package/src/utils/convert.ts +1 -1
- package/src/utils/multiple-sequence-alignment.ts +0 -1
- package/{test-Bio-34f75e5127b8-7af21e5d.html → test-Bio-34f75e5127b8-303cfb72.html} +2 -2
- package/src/tests/splitter-test.ts +0 -22
- package/src/utils/notation-converter.ts +0 -327
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
smiles
|
|
2
|
+
O=C1CN=C(c2ccccc2N1)C3CCCCC3
|
|
3
|
+
CN1C(=O)CN=C(c2ccccc12)C3CCCCC3
|
|
4
|
+
CCCCN1C(=O)CN=C(c2ccccc12)C3CCCCC3
|
|
5
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc12)C3CCCCC3
|
|
6
|
+
O=C1CN=C(c2ccccc2N1CC3CCCCC3)C4CCCCC4
|
|
7
|
+
O=C1CN=C(c2cc(Cl)ccc2N1)C3CCCCC3
|
|
8
|
+
CN1C(=O)CN=C(c2cc(Cl)ccc12)C3CCCCC3
|
|
9
|
+
CCCCN1C(=O)CN=C(c2cc(Cl)ccc12)C3CCCCC3
|
|
10
|
+
CC(C)CCN1C(=O)CN=C(c2cc(Cl)ccc12)C3CCCCC3
|
|
11
|
+
O=C1CN=C(c2cc(Cl)ccc2N1CC3CCCCC3)C4CCCCC4
|
|
12
|
+
N#Cc1ccc2NC(=O)CN=C(c2c1)C3CCCCC3
|
|
13
|
+
CN1C(=O)CN=C(c2cc(C#N)ccc12)C3CCCCC3
|
|
14
|
+
CCCCN1C(=O)CN=C(c2cc(C#N)ccc12)C3CCCCC3
|
|
15
|
+
CC(C)CCN1C(=O)CN=C(c2cc(C#N)ccc12)C3CCCCC3
|
|
16
|
+
N#Cc1ccc2c(c1)C(=NCC(=O)N2CC3CCCCC3)C4CCCCC4
|
|
17
|
+
CN(C)c1ccc2NC(=O)CN=C(c2c1)C3CCCCC3
|
|
18
|
+
CN(C)c1ccc2c(c1)C(=NCC(=O)N2C)C3CCCCC3
|
|
19
|
+
CCCCN1C(=O)CN=C(c2cc(ccc12)N(C)C)C3CCCCC3
|
|
20
|
+
CC(C)CCN1C(=O)CN=C(c2cc(ccc12)N(C)C)C3CCCCC3
|
|
21
|
+
CN(C)c1ccc2c(c1)C(=NCC(=O)N2CC3CCCCC3)C4CCCCC4
|
|
22
|
+
O=C1CN=C(c2cc(F)ccc2N1)C3CCCCC3
|
|
23
|
+
CN1C(=O)CN=C(c2cc(F)ccc12)C3CCCCC3
|
|
24
|
+
CCCCN1C(=O)CN=C(c2cc(F)ccc12)C3CCCCC3
|
|
25
|
+
CC(C)CCN1C(=O)CN=C(c2cc(F)ccc12)C3CCCCC3
|
|
26
|
+
O=C1CN=C(c2cc(F)ccc2N1CC3CCCCC3)C4CCCCC4
|
|
27
|
+
O=C1CN=C(c2cc(Br)ccc2N1)C3CCCCC3
|
|
28
|
+
CN1C(=O)CN=C(c2cc(Br)ccc12)C3CCCCC3
|
|
29
|
+
CCCCN1C(=O)CN=C(c2cc(Br)ccc12)C3CCCCC3
|
|
30
|
+
CC(C)CCN1C(=O)CN=C(c2cc(Br)ccc12)C3CCCCC3
|
|
31
|
+
O=C1CN=C(c2cc(Br)ccc2N1CC3CCCCC3)C4CCCCC4
|
|
32
|
+
O=C1CN=C(c2cc(I)ccc2N1)C3CCCCC3
|
|
33
|
+
CN1C(=O)CN=C(c2cc(I)ccc12)C3CCCCC3
|
|
34
|
+
CCCCN1C(=O)CN=C(c2cc(I)ccc12)C3CCCCC3
|
|
35
|
+
CC(C)CCN1C(=O)CN=C(c2cc(I)ccc12)C3CCCCC3
|
|
36
|
+
O=C1CN=C(c2cc(I)ccc2N1CC3CCCCC3)C4CCCCC4
|
|
37
|
+
NC(=O)c1ccc2NC(=O)CN=C(c2c1)C3CCCCC3
|
|
38
|
+
CN1C(=O)CN=C(c2cc(ccc12)C(N)=O)C3CCCCC3
|
|
39
|
+
CCCCN1C(=O)CN=C(c2cc(ccc12)C(N)=O)C3CCCCC3
|
|
40
|
+
CC(C)CCN1C(=O)CN=C(c2cc(ccc12)C(N)=O)C3CCCCC3
|
|
41
|
+
NC(=O)c1ccc2c(c1)C(=NCC(=O)N2CC3CCCCC3)C4CCCCC4
|
|
42
|
+
O=C1CN=C(c2cc(ccc2N1)[N+](=O)[O-])C3CCCCC3
|
|
43
|
+
CN1C(=O)CN=C(c2cc(ccc12)[N+](=O)[O-])C3CCCCC3
|
|
44
|
+
CCCCN1C(=O)CN=C(c2cc(ccc12)[N+](=O)[O-])C3CCCCC3
|
|
45
|
+
CC(C)CCN1C(=O)CN=C(c2cc(ccc12)[N+](=O)[O-])C3CCCCC3
|
|
46
|
+
O=C1CN=C(c2cc(ccc2N1CC3CCCCC3)[N+](=O)[O-])C4CCCCC4
|
|
47
|
+
O=C1CN=C(c2ccccc2)c3ccccc3N1
|
|
48
|
+
CN1C(=O)CN=C(c2ccccc2)c3ccccc13
|
|
49
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3ccccc13
|
|
50
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3ccccc13
|
|
51
|
+
O=C1CN=C(c2ccccc2)c3ccccc3N1CC4CCCCC4
|
|
52
|
+
O=C1CN=C(c2ccccc2)c3cc(Cl)ccc3N1
|
|
53
|
+
CN1C(=O)CN=C(c2ccccc2)c3cc(Cl)ccc13
|
|
54
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(Cl)ccc13
|
|
55
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(Cl)ccc13
|
|
56
|
+
O=C1CN=C(c2ccccc2)c3cc(Cl)ccc3N1CC4CCCCC4
|
|
57
|
+
N#Cc1ccc2NC(=O)CN=C(c3ccccc3)c2c1
|
|
58
|
+
CN1C(=O)CN=C(c2ccccc2)c3cc(C#N)ccc13
|
|
59
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(C#N)ccc13
|
|
60
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(C#N)ccc13
|
|
61
|
+
N#Cc1ccc2c(c1)C(=NCC(=O)N2CC3CCCCC3)c4ccccc4
|
|
62
|
+
CN(C)c1ccc2NC(=O)CN=C(c3ccccc3)c2c1
|
|
63
|
+
CN(C)c1ccc2c(c1)C(=NCC(=O)N2C)c3ccccc3
|
|
64
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)N(C)C
|
|
65
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)N(C)C
|
|
66
|
+
CN(C)c1ccc2c(c1)C(=NCC(=O)N2CC3CCCCC3)c4ccccc4
|
|
67
|
+
O=C1CN=C(c2ccccc2)c3cc(F)ccc3N1
|
|
68
|
+
CN1C(=O)CN=C(c2ccccc2)c3cc(F)ccc13
|
|
69
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(F)ccc13
|
|
70
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(F)ccc13
|
|
71
|
+
O=C1CN=C(c2ccccc2)c3cc(F)ccc3N1CC4CCCCC4
|
|
72
|
+
O=C1CN=C(c2ccccc2)c3cc(Br)ccc3N1
|
|
73
|
+
CN1C(=O)CN=C(c2ccccc2)c3cc(Br)ccc13
|
|
74
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(Br)ccc13
|
|
75
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(Br)ccc13
|
|
76
|
+
O=C1CN=C(c2ccccc2)c3cc(Br)ccc3N1CC4CCCCC4
|
|
77
|
+
O=C1CN=C(c2ccccc2)c3cc(I)ccc3N1
|
|
78
|
+
CN1C(=O)CN=C(c2ccccc2)c3cc(I)ccc13
|
|
79
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(I)ccc13
|
|
80
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(I)ccc13
|
|
81
|
+
O=C1CN=C(c2ccccc2)c3cc(I)ccc3N1CC4CCCCC4
|
|
82
|
+
NC(=O)c1ccc2NC(=O)CN=C(c3ccccc3)c2c1
|
|
83
|
+
CN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)C(N)=O
|
|
84
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)C(N)=O
|
|
85
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)C(N)=O
|
|
86
|
+
NC(=O)c1ccc2c(c1)C(=NCC(=O)N2CC3CCCCC3)c4ccccc4
|
|
87
|
+
O=C1CN=C(c2ccccc2)c3cc(ccc3N1)[N+](=O)[O-]
|
|
88
|
+
CN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)[N+](=O)[O-]
|
|
89
|
+
CCCCN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)[N+](=O)[O-]
|
|
90
|
+
CC(C)CCN1C(=O)CN=C(c2ccccc2)c3cc(ccc13)[N+](=O)[O-]
|
|
91
|
+
O=C1CN=C(c2ccccc2)c3cc(ccc3N1CC4CCCCC4)[N+](=O)[O-]
|
|
92
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccccc23
|
|
93
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccccc23
|
|
94
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3ccccc13
|
|
95
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccccc23
|
|
96
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccccc24
|
|
97
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(Cl)cc23
|
|
98
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(Cl)cc23
|
|
99
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(Cl)ccc13
|
|
100
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(Cl)cc23
|
|
101
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(Cl)cc24
|
|
102
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(C#N)cc23
|
|
103
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(C#N)cc23
|
|
104
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(C#N)ccc13
|
|
105
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(C#N)cc23
|
|
106
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(C#N)cc24
|
|
107
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(cc23)N(C)C
|
|
108
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(cc23)N(C)C
|
|
109
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(ccc13)N(C)C
|
|
110
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(cc23)N(C)C
|
|
111
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(cc24)N(C)C
|
|
112
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(F)cc23
|
|
113
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(F)cc23
|
|
114
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(F)ccc13
|
|
115
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(F)cc23
|
|
116
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(F)cc24
|
|
117
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(Br)cc23
|
|
118
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(Br)cc23
|
|
119
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(Br)ccc13
|
|
120
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(Br)cc23
|
|
121
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(Br)cc24
|
|
122
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(I)cc23
|
|
123
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(I)cc23
|
|
124
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(I)ccc13
|
|
125
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(I)cc23
|
|
126
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(I)cc24
|
|
127
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(cc23)C(N)=O
|
|
128
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(cc23)C(N)=O
|
|
129
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(ccc13)C(N)=O
|
|
130
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(cc23)C(N)=O
|
|
131
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(cc24)C(N)=O
|
|
132
|
+
COc1ccc(cc1)C2=NCC(=O)Nc3ccc(cc23)[N+](=O)[O-]
|
|
133
|
+
COc1ccc(cc1)C2=NCC(=O)N(C)c3ccc(cc23)[N+](=O)[O-]
|
|
134
|
+
CCCCN1C(=O)CN=C(c2ccc(cc2)OC)c3cc(ccc13)[N+](=O)[O-]
|
|
135
|
+
COc1ccc(cc1)C2=NCC(=O)N(CCC(C)C)c3ccc(cc23)[N+](=O)[O-]
|
|
136
|
+
COc1ccc(cc1)C2=NCC(=O)N(CC3CCCCC3)c4ccc(cc24)[N+](=O)[O-]
|
|
137
|
+
CC1N=C(c2ccccc2NC1=O)C3CCCCC3
|
|
138
|
+
CC1N=C(c2ccccc2N(C)C1=O)C3CCCCC3
|
|
139
|
+
CCCCN1C(=O)C(C)N=C(c2ccccc12)C3CCCCC3
|
|
140
|
+
CC(C)CCN1C(=O)C(C)N=C(c2ccccc12)C3CCCCC3
|
|
141
|
+
CC1N=C(c2ccccc2N(CC3CCCCC3)C1=O)C4CCCCC4
|
|
142
|
+
CC1N=C(c2cc(Cl)ccc2NC1=O)C3CCCCC3
|
|
143
|
+
CC1N=C(c2cc(Cl)ccc2N(C)C1=O)C3CCCCC3
|
|
144
|
+
CCCCN1C(=O)C(C)N=C(c2cc(Cl)ccc12)C3CCCCC3
|
|
145
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(Cl)ccc12)C3CCCCC3
|
|
146
|
+
CC1N=C(c2cc(Cl)ccc2N(CC3CCCCC3)C1=O)C4CCCCC4
|
|
147
|
+
CC1N=C(c2cc(C#N)ccc2NC1=O)C3CCCCC3
|
|
148
|
+
CC1N=C(c2cc(C#N)ccc2N(C)C1=O)C3CCCCC3
|
|
149
|
+
CCCCN1C(=O)C(C)N=C(c2cc(C#N)ccc12)C3CCCCC3
|
|
150
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(C#N)ccc12)C3CCCCC3
|
|
151
|
+
CC1N=C(c2cc(C#N)ccc2N(CC3CCCCC3)C1=O)C4CCCCC4
|
|
152
|
+
CC1N=C(c2cc(ccc2NC1=O)N(C)C)C3CCCCC3
|
|
153
|
+
CC1N=C(c2cc(ccc2N(C)C1=O)N(C)C)C3CCCCC3
|
|
154
|
+
CCCCN1C(=O)C(C)N=C(c2cc(ccc12)N(C)C)C3CCCCC3
|
|
155
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(ccc12)N(C)C)C3CCCCC3
|
|
156
|
+
CC1N=C(c2cc(ccc2N(CC3CCCCC3)C1=O)N(C)C)C4CCCCC4
|
|
157
|
+
CC1N=C(c2cc(F)ccc2NC1=O)C3CCCCC3
|
|
158
|
+
CC1N=C(c2cc(F)ccc2N(C)C1=O)C3CCCCC3
|
|
159
|
+
CCCCN1C(=O)C(C)N=C(c2cc(F)ccc12)C3CCCCC3
|
|
160
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(F)ccc12)C3CCCCC3
|
|
161
|
+
CC1N=C(c2cc(F)ccc2N(CC3CCCCC3)C1=O)C4CCCCC4
|
|
162
|
+
CC1N=C(c2cc(Br)ccc2NC1=O)C3CCCCC3
|
|
163
|
+
CC1N=C(c2cc(Br)ccc2N(C)C1=O)C3CCCCC3
|
|
164
|
+
CCCCN1C(=O)C(C)N=C(c2cc(Br)ccc12)C3CCCCC3
|
|
165
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(Br)ccc12)C3CCCCC3
|
|
166
|
+
CC1N=C(c2cc(Br)ccc2N(CC3CCCCC3)C1=O)C4CCCCC4
|
|
167
|
+
CC1N=C(c2cc(I)ccc2NC1=O)C3CCCCC3
|
|
168
|
+
CC1N=C(c2cc(I)ccc2N(C)C1=O)C3CCCCC3
|
|
169
|
+
CCCCN1C(=O)C(C)N=C(c2cc(I)ccc12)C3CCCCC3
|
|
170
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(I)ccc12)C3CCCCC3
|
|
171
|
+
CC1N=C(c2cc(I)ccc2N(CC3CCCCC3)C1=O)C4CCCCC4
|
|
172
|
+
CC1N=C(c2cc(ccc2NC1=O)C(N)=O)C3CCCCC3
|
|
173
|
+
CC1N=C(c2cc(ccc2N(C)C1=O)C(N)=O)C3CCCCC3
|
|
174
|
+
CCCCN1C(=O)C(C)N=C(c2cc(ccc12)C(N)=O)C3CCCCC3
|
|
175
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(ccc12)C(N)=O)C3CCCCC3
|
|
176
|
+
CC1N=C(c2cc(ccc2N(CC3CCCCC3)C1=O)C(N)=O)C4CCCCC4
|
|
177
|
+
CC1N=C(c2cc(ccc2NC1=O)[N+](=O)[O-])C3CCCCC3
|
|
178
|
+
CC1N=C(c2cc(ccc2N(C)C1=O)[N+](=O)[O-])C3CCCCC3
|
|
179
|
+
CCCCN1C(=O)C(C)N=C(c2cc(ccc12)[N+](=O)[O-])C3CCCCC3
|
|
180
|
+
CC(C)CCN1C(=O)C(C)N=C(c2cc(ccc12)[N+](=O)[O-])C3CCCCC3
|
|
181
|
+
CC1N=C(c2cc(ccc2N(CC3CCCCC3)C1=O)[N+](=O)[O-])C4CCCCC4
|
|
182
|
+
CC1N=C(c2ccccc2)c3ccccc3NC1=O
|
|
183
|
+
CC1N=C(c2ccccc2)c3ccccc3N(C)C1=O
|
|
184
|
+
CCCCN1C(=O)C(C)N=C(c2ccccc2)c3ccccc13
|
|
185
|
+
CC(C)CCN1C(=O)C(C)N=C(c2ccccc2)c3ccccc13
|
|
186
|
+
CC1N=C(c2ccccc2)c3ccccc3N(CC4CCCCC4)C1=O
|
|
187
|
+
CC1N=C(c2ccccc2)c3cc(Cl)ccc3NC1=O
|
|
188
|
+
CC1N=C(c2ccccc2)c3cc(Cl)ccc3N(C)C1=O
|
|
189
|
+
CCCCN1C(=O)C(C)N=C(c2ccccc2)c3cc(Cl)ccc13
|
|
190
|
+
CC(C)CCN1C(=O)C(C)N=C(c2ccccc2)c3cc(Cl)ccc13
|
|
191
|
+
CC1N=C(c2ccccc2)c3cc(Cl)ccc3N(CC4CCCCC4)C1=O
|
|
192
|
+
CC1N=C(c2ccccc2)c3cc(C#N)ccc3NC1=O
|
|
193
|
+
CC1N=C(c2ccccc2)c3cc(C#N)ccc3N(C)C1=O
|
|
194
|
+
CCCCN1C(=O)C(C)N=C(c2ccccc2)c3cc(C#N)ccc13
|
|
195
|
+
CC(C)CCN1C(=O)C(C)N=C(c2ccccc2)c3cc(C#N)ccc13
|
|
196
|
+
CC1N=C(c2ccccc2)c3cc(C#N)ccc3N(CC4CCCCC4)C1=O
|
|
197
|
+
CC1N=C(c2ccccc2)c3cc(ccc3NC1=O)N(C)C
|
|
198
|
+
CC1N=C(c2ccccc2)c3cc(ccc3N(C)C1=O)N(C)C
|
|
199
|
+
CCCCN1C(=O)C(C)N=C(c2ccccc2)c3cc(ccc13)N(C)C
|
|
200
|
+
CC(C)CCN1C(=O)C(C)N=C(c2ccccc2)c3cc(ccc13)N(C)C
|
|
201
|
+
CC1N=C(c2ccccc2)c3cc(ccc3N(CC4CCCCC4)C1=O)N(C)C
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@datagrok/bio",
|
|
3
3
|
"beta": false,
|
|
4
4
|
"friendlyName": "Bio",
|
|
5
|
-
"version": "1.7.
|
|
5
|
+
"version": "1.7.3",
|
|
6
6
|
"description": "Bio is a [package](https://datagrok.ai/help/develop/develop#packages) for the [Datagrok](https://datagrok.ai) platform",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@biowasm/aioli": ">=2.4.0",
|
|
14
|
-
"@datagrok-libraries/bio": "
|
|
14
|
+
"@datagrok-libraries/bio": "2.8.1",
|
|
15
15
|
"@datagrok-libraries/utils": "^1.0.0",
|
|
16
|
-
"@datagrok-libraries/ml": "^2.0.
|
|
16
|
+
"@datagrok-libraries/ml": "^2.0.10",
|
|
17
17
|
"cash-dom": "latest",
|
|
18
18
|
"datagrok-api": "^1.4.12",
|
|
19
19
|
"dayjs": "latest",
|
|
@@ -60,10 +60,7 @@
|
|
|
60
60
|
],
|
|
61
61
|
"sources": [
|
|
62
62
|
"css/helm.css",
|
|
63
|
-
"https://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
|
|
64
|
-
"helm/JSDraw/Scilligence.JSDraw2.Lite.js",
|
|
65
|
-
"helm/JSDraw/Scilligence.JSDraw2.Resources.js",
|
|
66
|
-
"helm/JSDraw/Pistoia.HELM-uncompressed.js"
|
|
63
|
+
"https://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
|
|
67
64
|
],
|
|
68
65
|
"category": "Bioinformatics"
|
|
69
66
|
}
|
package/src/package-test.ts
CHANGED
|
@@ -8,7 +8,7 @@ import './tests/detectors-test';
|
|
|
8
8
|
import './tests/msa-tests';
|
|
9
9
|
import './tests/sequence-space-test';
|
|
10
10
|
import './tests/activity-cliffs-tests';
|
|
11
|
-
import './tests/
|
|
11
|
+
import './tests/splitters-test';
|
|
12
12
|
import './tests/renderer-test';
|
|
13
13
|
import './tests/convert-test';
|
|
14
14
|
|
package/src/package.ts
CHANGED
|
@@ -11,7 +11,6 @@ import {runKalign, testMSAEnoughMemory} from './utils/multiple-sequence-alignmen
|
|
|
11
11
|
import {SequenceAlignment, Aligned} from './seq_align';
|
|
12
12
|
import {Nucleotides} from '@datagrok-libraries/bio/src/nucleotides';
|
|
13
13
|
import {Aminoacids} from '@datagrok-libraries/bio/src/aminoacids';
|
|
14
|
-
import {convert} from './utils/convert';
|
|
15
14
|
import {getEmbeddingColsNames, sequenceSpace} from './utils/sequence-space';
|
|
16
15
|
import {AvailableMetrics} from '@datagrok-libraries/ml/src/typed-metrics';
|
|
17
16
|
import {getActivityCliffs} from '@datagrok-libraries/ml/src/viewers/activity-cliffs';
|
|
@@ -19,10 +18,8 @@ import {sequenceGetSimilarities, drawTooltip} from './utils/sequence-activity-cl
|
|
|
19
18
|
import {getMolfilesFromSeq, HELM_CORE_LIB_FILENAME} from './utils/utils';
|
|
20
19
|
import {getMacroMol} from './utils/atomic-works';
|
|
21
20
|
import {MacromoleculeSequenceCellRenderer} from './utils/cell-renderer';
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { delay } from '@datagrok-libraries/utils/src/test';
|
|
25
|
-
import { TableView } from 'datagrok-api/dg';
|
|
21
|
+
import {delay} from '@datagrok-libraries/utils/src/test';
|
|
22
|
+
import {convert} from './utils/convert';
|
|
26
23
|
|
|
27
24
|
//tags: init
|
|
28
25
|
export async function initBio(): Promise<void> {
|
|
@@ -175,21 +172,22 @@ export async function toAtomicLevel(df: DG.DataFrame, macroMolecule: DG.Column):
|
|
|
175
172
|
if (!checkInputColumn(macroMolecule, 'To Atomic Level'))
|
|
176
173
|
return;
|
|
177
174
|
|
|
178
|
-
let currentView: TableView;
|
|
179
|
-
for (
|
|
180
|
-
if (df.name === view.name)
|
|
175
|
+
let currentView: DG.TableView;
|
|
176
|
+
for (const view of grok.shell.tableViews) {
|
|
177
|
+
if (df.name === view.name)
|
|
181
178
|
currentView = view;
|
|
182
|
-
}
|
|
183
179
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const
|
|
187
|
-
|
|
180
|
+
|
|
181
|
+
// Some hack to activate Chem Molecule rendering
|
|
182
|
+
const file2 = await _package.files.readAsText('tests/sar-small.csv');
|
|
183
|
+
const df2 = DG.DataFrame.fromCsv(file2);
|
|
184
|
+
const v2 = grok.shell.addTableView(df2);
|
|
185
|
+
setTimeout(() => {
|
|
188
186
|
grok.shell.closeTable(df2);
|
|
189
|
-
|
|
187
|
+
v2.close();
|
|
190
188
|
grok.shell.v = currentView;
|
|
191
189
|
}, 100);
|
|
192
|
-
|
|
190
|
+
|
|
193
191
|
const monomersLibFile = await _package.files.readAsText(HELM_CORE_LIB_FILENAME);
|
|
194
192
|
const monomersLibObject: any[] = JSON.parse(monomersLibFile);
|
|
195
193
|
const atomicCodes = getMolfilesFromSeq(macroMolecule, monomersLibObject);
|
|
@@ -199,7 +197,6 @@ export async function toAtomicLevel(df: DG.DataFrame, macroMolecule: DG.Column):
|
|
|
199
197
|
col.semType = DG.SEMTYPE.MOLECULE;
|
|
200
198
|
col.tags[DG.TAGS.UNITS] = 'molblock';
|
|
201
199
|
df.columns.add(col, true);
|
|
202
|
-
|
|
203
200
|
}
|
|
204
201
|
|
|
205
202
|
|
|
@@ -61,6 +61,24 @@ XZJ{}2
|
|
|
61
61
|
test('testPickupPaletteX', async () => { await _testPickupPaletteX(csvDfX); });
|
|
62
62
|
});
|
|
63
63
|
|
|
64
|
+
category('WebLogo.monomerToText', () => {
|
|
65
|
+
test('longMonomerSingle', async () => {
|
|
66
|
+
await expect(WebLogo.monomerToText('S'), 'S');
|
|
67
|
+
});
|
|
68
|
+
test('longMonomerShort', async () => {
|
|
69
|
+
await expect(WebLogo.monomerToText('Short'), 'Short');
|
|
70
|
+
});
|
|
71
|
+
test('longMonomerLong56', async () => {
|
|
72
|
+
await expect(WebLogo.monomerToText('Long56'), 'Long5…');
|
|
73
|
+
});
|
|
74
|
+
test('longMonomerComplexFirstPartShort', async () => {
|
|
75
|
+
await expect(WebLogo.monomerToText('Long-long'), 'Long…');
|
|
76
|
+
});
|
|
77
|
+
test('longMonomerComplexFirstPartLong56', async () => {
|
|
78
|
+
await expect(WebLogo.monomerToText('Long56-long'), 'Long5…');
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
|
|
64
82
|
|
|
65
83
|
export async function _testGetStats(csvDfN1: string) {
|
|
66
84
|
const dfN1: DG.DataFrame = DG.DataFrame.fromCsv(csvDfN1);
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {after, before, category, expect, expectFloat, test} from '@datagrok-libraries/utils/src/test';
|
|
2
|
+
|
|
2
3
|
import * as DG from 'datagrok-api/dg';
|
|
3
|
-
import
|
|
4
|
-
|
|
4
|
+
import * as grok from 'datagrok-api/grok';
|
|
5
|
+
|
|
6
|
+
import {readDataframe} from './utils';
|
|
5
7
|
import {getEmbeddingColsNames, sequenceSpace} from '../utils/sequence-space';
|
|
6
8
|
import {drawTooltip, sequenceGetSimilarities} from '../utils/sequence-activity-cliffs';
|
|
7
9
|
import {getActivityCliffs} from '@datagrok-libraries/ml/src/viewers/activity-cliffs';
|
|
@@ -12,8 +14,15 @@ category('activityCliffs', async () => {
|
|
|
12
14
|
let actCliffsDf: DG.DataFrame;
|
|
13
15
|
|
|
14
16
|
before(async () => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
actCliffsDf = await readDataframe('samples/sample_MSA.csv');
|
|
18
|
+
actCliffsTableView = grok.shell.addTableView(actCliffsDf);
|
|
19
|
+
|
|
20
|
+
actCliffsDf = actCliffsTableView.dataFrame;
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
after(async () => {
|
|
24
|
+
grok.shell.closeTable(actCliffsDf);
|
|
25
|
+
actCliffsTableView.close();
|
|
17
26
|
});
|
|
18
27
|
|
|
19
28
|
test('activityCliffsOpen', async () => {
|
|
@@ -41,10 +50,6 @@ category('activityCliffs', async () => {
|
|
|
41
50
|
|
|
42
51
|
const cliffsLink = (Array.from(scatterPlot.root.children) as Element[])
|
|
43
52
|
.filter((it) => it.className === 'ui-btn ui-btn-ok');
|
|
44
|
-
expect((cliffsLink[0] as HTMLElement).innerText, '
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
after(async () => {
|
|
48
|
-
actCliffsTableView.close();
|
|
53
|
+
expect((cliffsLink[0] as HTMLElement).innerText, '105 cliffs');
|
|
49
54
|
});
|
|
50
55
|
});
|
|
@@ -4,7 +4,7 @@ import * as grok from 'datagrok-api/grok';
|
|
|
4
4
|
import * as DG from 'datagrok-api/dg';
|
|
5
5
|
|
|
6
6
|
import {ConverterFunc, DfReaderFunc} from './types';
|
|
7
|
-
import {NOTATION, NotationConverter} from '
|
|
7
|
+
import {NOTATION, NotationConverter} from '@datagrok-libraries/bio/src/utils/notation-converter';
|
|
8
8
|
|
|
9
9
|
// import {mmSemType} from '../const';
|
|
10
10
|
// import {importFasta} from '../package';
|
|
@@ -22,6 +22,10 @@ category('converters', () => {
|
|
|
22
22
|
fastaRna = 'fastaRna',
|
|
23
23
|
separatorRna = 'separatorRna',
|
|
24
24
|
helmRna = 'helmRna',
|
|
25
|
+
|
|
26
|
+
fastaGaps = 'fastaGaps',
|
|
27
|
+
separatorGaps = 'separatorGaps',
|
|
28
|
+
helmGaps = 'helmGaps'
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
const _csvTxts: { [key: string]: string } = {
|
|
@@ -69,6 +73,24 @@ U*U*C*A*A*C
|
|
|
69
73
|
RNA1{R(A)P.R(C)P.R(G)P.R(U)P.R(C)P}$$$
|
|
70
74
|
RNA1{R(C)P.R(A)P.R(G)P.R(U)P.R(G)P.R(U)P}$$$
|
|
71
75
|
RNA1{R(U)P.R(U)P.R(C)P.R(A)P.R(A)P.R(C)P}$$$
|
|
76
|
+
`,
|
|
77
|
+
|
|
78
|
+
fastaGaps: `seq
|
|
79
|
+
FW-PH-EY
|
|
80
|
+
-YNRQWYV-
|
|
81
|
+
MKP---SEYV
|
|
82
|
+
`,
|
|
83
|
+
|
|
84
|
+
separatorGaps: `seq
|
|
85
|
+
F/W//P/H//E/Y
|
|
86
|
+
//Y/N/R/Q/W/Y/V//
|
|
87
|
+
M/K/P////S/E/Y/V
|
|
88
|
+
`,
|
|
89
|
+
|
|
90
|
+
helmGaps: `seq
|
|
91
|
+
PEPTIDE1{F.W.*.P.H.*.E.Y}$$$
|
|
92
|
+
PEPTIDE1{*.Y.N.R.Q.W.Y.V.*}$$$
|
|
93
|
+
PEPTIDE1{M.K.P.*.*.*.S.E.Y.V}$$$
|
|
72
94
|
`,
|
|
73
95
|
};
|
|
74
96
|
|
|
@@ -110,6 +132,7 @@ RNA1{R(U)P.R(U)P.R(C)P.R(A)P.R(A)P.R(C)P}$$$
|
|
|
110
132
|
expectArray(resCol.toList(), tgtCol.toList());
|
|
111
133
|
}
|
|
112
134
|
|
|
135
|
+
// FASTA tests
|
|
113
136
|
test('testFastaPtToSeparator', async () => {
|
|
114
137
|
await _testConvert(Samples.fastaPt, converter(NOTATION.SEPARATOR, '-'), Samples.separatorPt);
|
|
115
138
|
});
|
|
@@ -130,6 +153,15 @@ RNA1{R(U)P.R(U)P.R(C)P.R(A)P.R(A)P.R(C)P}$$$
|
|
|
130
153
|
await _testConvert(Samples.fastaRna, converter(NOTATION.HELM), Samples.helmRna);
|
|
131
154
|
});
|
|
132
155
|
|
|
156
|
+
test('testFastaGapsToSeparator', async () => {
|
|
157
|
+
await _testConvert(Samples.fastaGaps, converter(NOTATION.SEPARATOR, '/'), Samples.separatorGaps);
|
|
158
|
+
});
|
|
159
|
+
test('testFastaGapsToHelm', async () => {
|
|
160
|
+
await _testConvert(Samples.fastaGaps, converter(NOTATION.SEPARATOR), Samples.helmGaps);
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
// SEPARATOR tests
|
|
133
165
|
test('testSeparatorPtToFasta', async () => {
|
|
134
166
|
await _testConvert(Samples.separatorPt, converter(NOTATION.FASTA), Samples.fastaPt);
|
|
135
167
|
});
|
|
@@ -149,4 +181,13 @@ RNA1{R(U)P.R(U)P.R(C)P.R(A)P.R(A)P.R(C)P}$$$
|
|
|
149
181
|
test('testSeparatorRnaToHelm', async () => {
|
|
150
182
|
await _testConvert(Samples.separatorRna, converter(NOTATION.HELM), Samples.helmRna);
|
|
151
183
|
});
|
|
184
|
+
test('testSeparatorGapsToFasta', async () => {
|
|
185
|
+
await _testConvert(Samples.separatorGaps, converter(NOTATION.FASTA), Samples.fastaGaps);
|
|
186
|
+
});
|
|
187
|
+
test('testSeparatorGapsToHelm', async () => {
|
|
188
|
+
await _testConvert(Samples.separatorGaps, converter(NOTATION.HELM), Samples.helmGaps);
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
// HELM tests: TODO
|
|
152
193
|
});
|
|
@@ -102,6 +102,7 @@ MWRSWY-CKHP
|
|
|
102
102
|
|
|
103
103
|
const enum Samples {
|
|
104
104
|
peptidesComplex = 'peptidesComplex',
|
|
105
|
+
peptidesSimple = 'peptidesSimple',
|
|
105
106
|
fastaCsv = 'fastaCsv',
|
|
106
107
|
fastaFasta = 'fastaFasta',
|
|
107
108
|
fastaPtCsv = 'fastaPtCsv',
|
|
@@ -115,17 +116,18 @@ MWRSWY-CKHP
|
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
const samples: { [key: string]: string } = {
|
|
118
|
-
'peptidesComplex': 'System:AppData/Bio/samples/peptides_complex_msa.csv',
|
|
119
119
|
'fastaCsv': 'System:AppData/Bio/samples/sample_FASTA.csv',
|
|
120
120
|
'fastaFasta': 'System:AppData/Bio/samples/sample_FASTA.fasta',
|
|
121
121
|
'fastaPtCsv': 'System:AppData/Bio/samples/sample_FASTA_PT.csv',
|
|
122
122
|
'msaComplex': 'System:AppData/Bio/samples/sample_MSA.csv',
|
|
123
123
|
'helmCsv': 'System:AppData/Bio/samples/sample_HELM.csv',
|
|
124
|
-
'
|
|
125
|
-
'
|
|
126
|
-
'
|
|
127
|
-
'
|
|
128
|
-
'
|
|
124
|
+
'peptidesComplex': 'System:AppData/Bio/tests/peptides_complex_msa.csv',
|
|
125
|
+
'peptidesSimple': 'System:AppData/Bio/tests/peptides_simple_msa.csv',
|
|
126
|
+
'testDemogCsv': 'System:AppData/Bio/tests/testDemog.csv',
|
|
127
|
+
'testHelmCsv': 'System:AppData/Bio/tests/testHelm.csv',
|
|
128
|
+
'testIdCsv': 'System:AppData/Bio/tests/testId.csv',
|
|
129
|
+
'testSmilesCsv': 'System:AppData/Bio/tests/testSmiles.csv',
|
|
130
|
+
'testSmiles2Csv': 'System:AppData/Bio/tests/testSmiles2.csv',
|
|
129
131
|
};
|
|
130
132
|
|
|
131
133
|
const _samplesDfs: { [key: string]: Promise<DG.DataFrame> } = {};
|
|
@@ -228,6 +230,10 @@ MWRSWY-CKHP
|
|
|
228
230
|
await _testPos(readSamples(Samples.fastaFasta, readFileFasta), 'sequence', 'fasta:SEQ:PT');
|
|
229
231
|
});
|
|
230
232
|
|
|
233
|
+
// peptidesComplex contains monomers with spaces in AlignedSequence columns, which are forbidden
|
|
234
|
+
// test('samplesPeptidesComplexPositiveAlignedSequence', async () => {
|
|
235
|
+
// await _testPos(readSamples(Samples.peptidesComplex), 'AlignedSequence', 'separator:SEQ:UN', '-');
|
|
236
|
+
// });
|
|
231
237
|
test('samplesPeptidesComplexNegativeID', async () => {
|
|
232
238
|
await _testNeg(readSamples(Samples.peptidesComplex), 'ID');
|
|
233
239
|
});
|
|
@@ -7,12 +7,15 @@ import {importFasta, multipleSequenceAlignmentAny} from '../package';
|
|
|
7
7
|
|
|
8
8
|
category('renderers', () => {
|
|
9
9
|
let tvList: DG.TableView[];
|
|
10
|
+
let dfList: DG.DataFrame[];
|
|
10
11
|
|
|
11
12
|
before(async () => {
|
|
12
13
|
tvList = [];
|
|
14
|
+
dfList = [];
|
|
13
15
|
});
|
|
14
16
|
|
|
15
17
|
after(async () => {
|
|
18
|
+
dfList.forEach((df: DG.DataFrame) => { grok.shell.closeTable(df); });
|
|
16
19
|
tvList.forEach((tv: DG.TableView) => tv.close());
|
|
17
20
|
});
|
|
18
21
|
|
|
@@ -23,6 +26,7 @@ category('renderers', () => {
|
|
|
23
26
|
async function _testAfterMsa() {
|
|
24
27
|
const fastaTxt: string = await grok.dapi.files.readAsText('System:AppData/Bio/samples/sample_FASTA.fasta');
|
|
25
28
|
const df: DG.DataFrame = importFasta(fastaTxt)[0];
|
|
29
|
+
// await grok.data.detectSemanticTypes(df);
|
|
26
30
|
|
|
27
31
|
const srcSeqCol: DG.Column | null = df.col('sequence');
|
|
28
32
|
expect(srcSeqCol !== null, true);
|
|
@@ -31,14 +35,15 @@ category('renderers', () => {
|
|
|
31
35
|
const tv: DG.TableView = grok.shell.addTableView(df);
|
|
32
36
|
console.log('Bio: tests/renderers/afterMsa, table view');
|
|
33
37
|
|
|
34
|
-
await grok.data.detectSemanticTypes(df);
|
|
38
|
+
// await grok.data.detectSemanticTypes(df);
|
|
35
39
|
console.log('Bio: tests/renderers/afterMsa, detectSemanticTypes');
|
|
36
40
|
|
|
37
|
-
console.log('Bio: tests/renderers/afterMsa, src before test
|
|
41
|
+
console.log('Bio: tests/renderers/afterMsa, src before test ' +
|
|
38
42
|
`semType="${srcSeqCol!.semType}", units="${srcSeqCol!.getTag(DG.TAGS.UNITS)}", ` +
|
|
39
43
|
`cell.renderer="${srcSeqCol!.getTag('cell.renderer')}"`);
|
|
40
44
|
expect(srcSeqCol!.semType, DG.SEMTYPE.MACROMOLECULE);
|
|
41
45
|
expect(srcSeqCol!.getTag(DG.TAGS.UNITS), 'fasta:SEQ:PT');
|
|
46
|
+
// TODO: Find the way to check renderer for columns
|
|
42
47
|
expect(srcSeqCol!.getTag('cell.renderer'), 'Macromolecule');
|
|
43
48
|
console.log('Bio: tests/renderers/afterMsa, src semType tested');
|
|
44
49
|
|
|
@@ -53,6 +58,7 @@ category('renderers', () => {
|
|
|
53
58
|
expect(msaSeqCol!.getTag('cell.renderer'), 'Macromolecule');
|
|
54
59
|
console.log('Bio: tests/renderers/afterMsa, msa semType tested');
|
|
55
60
|
|
|
61
|
+
dfList.push(df);
|
|
56
62
|
tvList.push(tv);
|
|
57
63
|
}
|
|
58
64
|
});
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import {before, category, test, expect} from '@datagrok-libraries/utils/src/test';
|
|
1
|
+
import {after, before, category, test, expect} from '@datagrok-libraries/utils/src/test';
|
|
2
2
|
import * as DG from 'datagrok-api/dg';
|
|
3
3
|
import {sequenceSpace} from '../utils/sequence-space';
|
|
4
4
|
import {readDataframe} from './utils';
|
|
5
|
-
|
|
5
|
+
import * as grok from 'datagrok-api/grok';
|
|
6
6
|
|
|
7
7
|
category('sequenceSpace', async () => {
|
|
8
8
|
let testFastaDf: DG.DataFrame;
|
|
9
9
|
|
|
10
10
|
before(async () => {
|
|
11
|
-
testFastaDf = await readDataframe('sample_FASTA.csv');
|
|
11
|
+
testFastaDf = await readDataframe('samples/sample_FASTA.csv');
|
|
12
|
+
// await grok.data.detectSemanticTypes(testFastaDf);
|
|
12
13
|
});
|
|
13
14
|
|
|
15
|
+
after(async () => {
|
|
16
|
+
grok.shell.closeTable(testFastaDf);
|
|
17
|
+
});
|
|
14
18
|
|
|
15
19
|
test('sequenceSpaceOpens', async () => {
|
|
16
20
|
const sequenceSpaceParams = {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {after, before, category, test, expect, expectArray} from '@datagrok-libraries/utils/src/test';
|
|
2
|
+
|
|
3
|
+
import * as grok from 'datagrok-api/grok';
|
|
4
|
+
import * as ui from 'datagrok-api/ui';
|
|
5
|
+
import * as DG from 'datagrok-api/dg';
|
|
6
|
+
import {WebLogo, SplitterFunc} from '@datagrok-libraries/bio/src/viewers/web-logo';
|
|
7
|
+
|
|
8
|
+
category('splitters', () => {
|
|
9
|
+
const helm1 = 'PEPTIDE1{meI.hHis.Aca.N.T.dE.Thr_PO3H2.Aca.D-Tyr_Et.Tyr_ab-dehydroMe.dV.E.N.D-Orn.D-aThr.Phe_4Me}$$$';
|
|
10
|
+
|
|
11
|
+
const helm2 = 'PEPTIDE1{meI.hHis.Hcy.Q.T.W.Q.Phe_4NH2.D-Tyr_Et.Tyr_ab-dehydroMe.dV.E.N.N.meK}$$$';
|
|
12
|
+
|
|
13
|
+
const data: { [key: string]: [string, string[]] } = {
|
|
14
|
+
helm1: [
|
|
15
|
+
'PEPTIDE1{meI.hHis.Aca.N.T.dE.Thr_PO3H2.Aca.D-Tyr_Et.Tyr_ab-dehydroMe.dV.E.N.D-Orn.D-aThr.Phe_4Me}$$$',
|
|
16
|
+
['meI', 'hHis', 'Aca', 'N', 'T', 'dE', 'Thr_PO3H2', 'Aca', 'D-Tyr_Et',
|
|
17
|
+
'Tyr_ab-dehydroMe', 'dV', 'E', 'N', 'D-Orn', 'D-aThr', 'Phe_4Me']
|
|
18
|
+
],
|
|
19
|
+
helm2: [
|
|
20
|
+
'PEPTIDE1{meI.hHis.Aca.N.T.dK.Thr_PO3H2.Aca.D-Tyr_Et.D-Dap.dV.E.N.pnG.Phe_4Me}$$$',
|
|
21
|
+
['meI', 'hHis', 'Aca', 'N', 'T', 'dK', 'Thr_PO3H2', 'Aca',
|
|
22
|
+
'D-Tyr_Et', 'D-Dap', 'dV', 'E', 'N', 'pnG', 'Phe_4Me']
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
test('helm1', async () => { await _testHelmSplitter(data.helm1[0], data.helm1[1]); });
|
|
27
|
+
test('helm2', async () => { await _testHelmSplitter(data.helm2[0], data.helm2[1]); });
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export async function _testHelmSplitter(src: string, tgt: string[]) {
|
|
31
|
+
const res: string[] = WebLogo.splitterAsHelm(src);
|
|
32
|
+
console.debug(`Bio: tests: splitters: src=${JSON.stringify(src)}, res=${JSON.stringify(res)} .`);
|
|
33
|
+
expectArray(res, tgt);
|
|
34
|
+
}
|
|
35
|
+
|