@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.
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.0",
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": "^2.5.0",
14
+ "@datagrok-libraries/bio": "2.8.1",
15
15
  "@datagrok-libraries/utils": "^1.0.0",
16
- "@datagrok-libraries/ml": "^2.0.9",
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
  }
@@ -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/splitter-test';
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 {Column} from 'datagrok-api/dg';
23
- import {SEM_TYPES} from './utils/constants';
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 (let view of grok.shell.tableViews) {
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
- const file = await _package.files.readAsText('samples/sar-small.csv');
185
- const df2 = DG.DataFrame.fromCsv(file);
186
- const v = grok.shell.addTableView(df2);
187
- setTimeout(()=> {
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
- v.close();
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 {createTableView, readDataframe} from './utils';
4
- import {_package} from '../package-test';
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
- actCliffsTableView = await createTableView('sample_MSA.csv');
16
- actCliffsDf = await readDataframe('sample_MSA.csv');
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, '101 cliffs');
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 '../utils/notation-converter';
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
- 'testDemogCsv': 'System:AppData/Bio/samples/testDemog.csv',
125
- 'testHelmCsv': 'System:AppData/Bio/samples/testHelm.csv',
126
- 'testIdCsv': 'System:AppData/Bio/samples/id.csv',
127
- 'testSmilesCsv': 'System:AppData/Bio/samples/testSmiles.csv',
128
- 'testSmiles2Csv': 'System:AppData/Bio/samples/testSmiles2.csv',
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 semType' +
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
- //import * as grok from 'datagrok-api/grok';
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
+