@datagrok/bio 1.7.0 → 1.7.1

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.1",
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",
package/src/package.ts CHANGED
@@ -181,7 +181,7 @@ export async function toAtomicLevel(df: DG.DataFrame, macroMolecule: DG.Column):
181
181
  currentView = view;
182
182
  }
183
183
  }
184
- const file = await _package.files.readAsText('samples/sar-small.csv');
184
+ const file = await _package.files.readAsText('tests/sar-small.csv');
185
185
  const df2 = DG.DataFrame.fromCsv(file);
186
186
  const v = grok.shell.addTableView(df2);
187
187
  setTimeout(()=> {
@@ -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
  });
@@ -115,17 +115,17 @@ MWRSWY-CKHP
115
115
  }
116
116
 
117
117
  const samples: { [key: string]: string } = {
118
- 'peptidesComplex': 'System:AppData/Bio/samples/peptides_complex_msa.csv',
118
+ 'peptidesComplex': 'System:AppData/Bio/tests/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
+ 'testDemogCsv': 'System:AppData/Bio/tests/testDemog.csv',
125
+ 'testHelmCsv': 'System:AppData/Bio/tests/testHelm.csv',
126
+ 'testIdCsv': 'System:AppData/Bio/tests/id.csv',
127
+ 'testSmilesCsv': 'System:AppData/Bio/tests/testSmiles.csv',
128
+ 'testSmiles2Csv': 'System:AppData/Bio/tests/testSmiles2.csv',
129
129
  };
130
130
 
131
131
  const _samplesDfs: { [key: string]: Promise<DG.DataFrame> } = {};
@@ -55,17 +55,18 @@ export function processSequence(subParts: string[]): [string[], boolean] {
55
55
  * @param {string} [color=undefinedColor] String color.
56
56
  * @param {number} [pivot=0] Pirvot.
57
57
  * @param {boolean} [left=false] Is left aligned.
58
- * @param {boolean} [hideMod=false] Hide amino acid redidue modifications.
59
58
  * @param {number} [transparencyRate=0.0] Transparency rate where 1.0 is fully transparent
59
+ * @param {string} [separator=''] Is separator for sequence.
60
+ * @param {boolean} [last=false] Is checker if element last or not.
60
61
  * @return {number} x coordinate to start printing at.
61
62
  */
62
63
  function printLeftOrCentered(
63
64
  x: number, y: number, w: number, h: number,
64
65
  g: CanvasRenderingContext2D, s: string, color = undefinedColor,
65
- pivot: number = 0, left = false, hideMod = false, transparencyRate: number = 1.0,
66
+ pivot: number = 0, left = false, transparencyRate: number = 1.0,
66
67
  separator: string = '', last: boolean = false): number {
67
68
  g.textAlign = 'start';
68
- let colorPart = s.substring(0);
69
+ const colorPart = s.substring(0);
69
70
  let grayPart = separator;
70
71
  if (last) {
71
72
  grayPart = '';
@@ -96,14 +97,10 @@ function printLeftOrCentered(
96
97
  }
97
98
 
98
99
  export class MacromoleculeSequenceCellRenderer extends DG.GridCellRenderer {
99
-
100
- get name(): string {return 'macromoleculeSequence';}
101
-
102
- get cellType(): string {return C.SEM_TYPES.Macro_Molecule;}
103
-
104
- get defaultHeight(): number {return 30;}
105
-
106
- get defaultWidth(): number {return 230;}
100
+ get name(): string { return 'macromoleculeSequence'; }
101
+ get cellType(): string { return C.SEM_TYPES.Macro_Molecule; }
102
+ get defaultHeight(): number { return 30; }
103
+ get defaultWidth(): number { return 230; }
107
104
 
108
105
  /**
109
106
  * Cell renderer function.
@@ -119,27 +116,27 @@ export class MacromoleculeSequenceCellRenderer extends DG.GridCellRenderer {
119
116
  */
120
117
  render(
121
118
  g: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, gridCell: DG.GridCell,
122
- cellStyle: DG.GridCellStyle,
119
+ cellStyle: DG.GridCellStyle
123
120
  ): void {
124
121
  const grid = gridCell.grid;
125
122
  const cell = gridCell.cell;
126
123
  const tag = gridCell.cell.column.getTag(DG.TAGS.UNITS);
127
124
  if (tag === 'HELM') {
128
- let host = ui.div([], {style: {width: `${w}px`, height: `${h}px`}});
125
+ const host = ui.div([], {style: {width: `${w}px`, height: `${h}px`}});
129
126
  host.setAttribute('dataformat', 'helm');
130
127
  host.setAttribute('data', gridCell.cell.value);
131
128
  gridCell.element = host;
132
129
  //@ts-ignore
133
- var canvas = new JSDraw2.Editor(host, {width: w, height: h, skin: 'w8', viewonly: true});
134
- var formula = canvas.getFormula(true);
130
+ const canvas = new JSDraw2.Editor(host, {width: w, height: h, skin: 'w8', viewonly: true});
131
+ const formula = canvas.getFormula(true);
135
132
  if (!formula) {
136
133
  gridCell.element = ui.divText(gridCell.cell.value, {style: {color: 'red'}});
137
134
  } else {
138
135
  gridCell.element = host;
139
- var molWeight = Math.round(canvas.getMolWeight() * 100) / 100;
140
- var coef = Math.round(canvas.getExtinctionCoefficient(true) * 100) / 100;
141
- var molfile = canvas.getMolfile();
142
- var result = formula + ', ' + molWeight + ', ' + coef + ', ' + molfile;
136
+ const molWeight = Math.round(canvas.getMolWeight() * 100) / 100;
137
+ const coef = Math.round(canvas.getExtinctionCoefficient(true) * 100) / 100;
138
+ const molfile = canvas.getMolfile();
139
+ const result = formula + ', ' + molWeight + ', ' + coef + ', ' + molfile;
143
140
  lru.set(gridCell.cell.value, result);
144
141
  }
145
142
  } else {
@@ -159,12 +156,10 @@ export class MacromoleculeSequenceCellRenderer extends DG.GridCellRenderer {
159
156
  const palette = getPalleteByType(paletteType);
160
157
 
161
158
  const separator = gridCell.cell.column.getTag('separator') ?? '';
162
- const splitterFunc: SplitterFunc = WebLogo.getSplitter(units, gridCell.cell.column.getTag('separator'));// splitter,
159
+ const splitterFunc: SplitterFunc = WebLogo.getSplitter(units, gridCell.cell.column.getTag('separator'));
163
160
 
164
161
  const subParts: string[] = splitterFunc(cell.value);
165
162
  // console.log(subParts);
166
-
167
- const textSize = g.measureText(subParts.join(''));
168
163
  let x1 = x;
169
164
  let color = undefinedColor;
170
165
  subParts.forEach((amino, index) => {
@@ -174,7 +169,7 @@ export class MacromoleculeSequenceCellRenderer extends DG.GridCellRenderer {
174
169
  if (index === subParts.length - 1) {
175
170
  last = true;
176
171
  }
177
- x1 = printLeftOrCentered(x1, y, w, h, g, amino, color, 0, true, false, 1.0, separator, last);
172
+ x1 = printLeftOrCentered(x1, y, w, h, g, amino, color, 0, true, 1.0, separator, last);
178
173
  });
179
174
 
180
175
  g.restore();
@@ -4,7 +4,6 @@ import * as DG from 'datagrok-api/dg';
4
4
  import Aioli from '@biowasm/aioli';
5
5
 
6
6
  import {AlignedSequenceEncoder} from '@datagrok-libraries/bio/src/sequence-encoder';
7
- import * as C from './constants';
8
7
 
9
8
  /**
10
9
  * Converts array of sequences into simple fasta string.