lazar-gui 1.3.1 → 1.4.0.pre.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/FAQ.md +9 -6
  4. data/Gemfile +2 -2
  5. data/README.md +19 -8
  6. data/VERSION +1 -1
  7. data/api/api.json +1000 -0
  8. data/application.rb +269 -206
  9. data/config.ru +7 -2
  10. data/docker/Dockerfile +73 -0
  11. data/docker/start.sh +12 -0
  12. data/docker/swagger.html +107 -0
  13. data/helper.rb +46 -1
  14. data/lazar-gui.gemspec +6 -6
  15. data/lib/api.rb +29 -0
  16. data/lib/compound.rb +68 -0
  17. data/lib/dataset.rb +33 -0
  18. data/lib/endpoint.rb +23 -0
  19. data/lib/feature.rb +29 -0
  20. data/lib/model.rb +152 -0
  21. data/lib/report.rb +29 -0
  22. data/lib/substance.rb +34 -0
  23. data/lib/swagger.rb +3 -0
  24. data/lib/validation.rb +67 -0
  25. data/public/fonts/FontAwesome.otf +0 -0
  26. data/public/fonts/fontawesome-webfont.eot +0 -0
  27. data/public/fonts/fontawesome-webfont.svg +2671 -0
  28. data/public/fonts/fontawesome-webfont.ttf +0 -0
  29. data/public/fonts/fontawesome-webfont.woff +0 -0
  30. data/public/fonts/fontawesome-webfont.woff2 +0 -0
  31. data/public/images/orn-logo.jpg +0 -0
  32. data/public/javascripts/bootstrap.js +3944 -0
  33. data/public/javascripts/google_analytics_lazar.js +2 -2
  34. data/public/javascripts/jquery.min.js +2 -0
  35. data/public/javascripts/lazar-gui.js +313 -0
  36. data/public/javascripts/pagination.min.js +11 -0
  37. data/public/javascripts/popper.min.js +5 -0
  38. data/public/stylesheets/bootstrap.min.css +7 -0
  39. data/public/stylesheets/bootstrap.min.css.map +1 -0
  40. data/public/stylesheets/font-awesome.min.css +4 -0
  41. data/public/stylesheets/pagination.css +1 -0
  42. data/qmrf_report.rb +64 -14
  43. data/task.rb +68 -0
  44. data/unicorn.rb +0 -1
  45. data/views/batch.haml +48 -107
  46. data/views/details.haml +10 -2
  47. data/views/error.haml +4 -5
  48. data/views/faq.haml +6 -2
  49. data/views/help.haml +68 -0
  50. data/views/info.haml +3 -2
  51. data/views/layout.haml +68 -78
  52. data/views/model_details.haml +179 -144
  53. data/views/neighbors.haml +98 -80
  54. data/views/predict.haml +43 -178
  55. data/views/prediction.haml +109 -102
  56. data/views/style.scss +44 -37
  57. data/views/upload.haml +28 -0
  58. metadata +51 -105
  59. data/public/css/bootstrap-theme.min.css +0 -5
  60. data/public/css/bootstrap.min.css +0 -5
  61. data/public/css/bootstrap.vertical-tabs.min.css +0 -1
  62. data/public/css/images/black-asc.gif +0 -0
  63. data/public/css/images/black-desc.gif +0 -0
  64. data/public/css/images/black-unsorted.gif +0 -0
  65. data/public/css/images/bootstrap-black-unsorted.png +0 -0
  66. data/public/css/images/bootstrap-white-unsorted.png +0 -0
  67. data/public/css/images/dragtable-handle.png +0 -0
  68. data/public/css/images/dragtable-handle.svg +0 -7
  69. data/public/css/images/dropbox-asc-hovered.png +0 -0
  70. data/public/css/images/dropbox-asc.png +0 -0
  71. data/public/css/images/dropbox-desc-hovered.png +0 -0
  72. data/public/css/images/dropbox-desc.png +0 -0
  73. data/public/css/images/first.png +0 -0
  74. data/public/css/images/green-asc.gif +0 -0
  75. data/public/css/images/green-desc.gif +0 -0
  76. data/public/css/images/green-header.gif +0 -0
  77. data/public/css/images/green-unsorted.gif +0 -0
  78. data/public/css/images/ice-asc.gif +0 -0
  79. data/public/css/images/ice-desc.gif +0 -0
  80. data/public/css/images/ice-unsorted.gif +0 -0
  81. data/public/css/images/last.png +0 -0
  82. data/public/css/images/loading.gif +0 -0
  83. data/public/css/images/metro-black-asc.png +0 -0
  84. data/public/css/images/metro-black-desc.png +0 -0
  85. data/public/css/images/metro-loading.gif +0 -0
  86. data/public/css/images/metro-unsorted.png +0 -0
  87. data/public/css/images/metro-white-asc.png +0 -0
  88. data/public/css/images/metro-white-desc.png +0 -0
  89. data/public/css/images/next.png +0 -0
  90. data/public/css/images/prev.png +0 -0
  91. data/public/css/images/white-asc.gif +0 -0
  92. data/public/css/images/white-desc.gif +0 -0
  93. data/public/css/images/white-unsorted.gif +0 -0
  94. data/public/css/jquery-ui.css +0 -1225
  95. data/public/css/jquery-ui.theme.min.css +0 -5
  96. data/public/css/theme.bootstrap.css +0 -158
  97. data/public/css/theme.bootstrap.min.css +0 -1
  98. data/public/css/theme.default.min.css +0 -1
  99. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  100. data/public/fonts/glyphicons-halflings-regular.svg +0 -288
  101. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  102. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  103. data/public/fonts/glyphicons-halflings-regular.woff2 +0 -0
  104. data/public/images/Email.png +0 -0
  105. data/public/images/Facebook.png +0 -0
  106. data/public/images/Google+.png +0 -0
  107. data/public/images/LinkedIn.png +0 -0
  108. data/public/images/OpenToxEuro2013_small.png +0 -0
  109. data/public/images/Twitter.png +0 -0
  110. data/public/images/arrow_down_float.png +0 -0
  111. data/public/images/arrow_left_float.png +0 -0
  112. data/public/images/arrow_right_float.png +0 -0
  113. data/public/images/arrow_up_float.png +0 -0
  114. data/public/images/asc.gif +0 -0
  115. data/public/images/bg.gif +0 -0
  116. data/public/images/desc.gif +0 -0
  117. data/public/images/gray_jean.png +0 -0
  118. data/public/images/info_white.png +0 -0
  119. data/public/javascripts/bootstrap.min.js +0 -7
  120. data/public/javascripts/jquery-1.11.2.min.js +0 -4
  121. data/public/javascripts/jquery-1.8.3.min.js +0 -2
  122. data/public/javascripts/jquery-ui-1.10.3.custom.min.js +0 -6
  123. data/public/javascripts/jquery.bpopup.min.js +0 -7
  124. data/public/javascripts/jquery.tablesorter.min.js +0 -2
  125. data/public/javascripts/jquery.tablesorter.widgets.js +0 -2678
  126. data/public/javascripts/jquery.tools.min.js +0 -5
  127. data/public/rect.png +0 -0
  128. data/test/lazarweb.rb +0 -193
  129. data/test/setup.rb +0 -7
  130. data/views/significant_fragments.haml +0 -66
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41811630fcbcad38d926cc7be7a0bf15f5a2f776
4
- data.tar.gz: 650146eee1929807db04ac7e0e0a71cd527af9a2
3
+ metadata.gz: b62bd400db67c63890b87da66fd39a5c409ae608
4
+ data.tar.gz: 846c1c3f564c6591b82ccede408f211a7ca66aaf
5
5
  SHA512:
6
- metadata.gz: fcc1ee841ecba46e71b425033933836f74f6138b5df5e2c4defddfbe851c5559150fd3032cea96a179c01dc2efd46959fb63e01002742e2a9f6255925b03abf0
7
- data.tar.gz: 81da5cb2d840cd315f732ec54f90c98cdc69353fa85988facbf366029ec52878d4e613a78ba08c20c8b1e367022cbfcac2312407590deb384f4665f0ec15f37d
6
+ metadata.gz: 7d0b13b9618aa506941ea3a99ee59ee4e70ff7e539c3936562ae5b5ea23d4f68221bd41109947dd5b1b3255d6134abe21e227729632c0ae92afe914be1bf6ec7
7
+ data.tar.gz: 8d75947e07ef2754bcdd9d318212f4696e1a6b6ec87cc6d330cb333dbb0c253399b84c6518fa704a8c729ce4f7dd97592ae75cf601b69046023fe54c2ba89f1a
data/.gitignore CHANGED
@@ -1,2 +1,5 @@
1
1
  Gemfile.lock
2
2
  .sass-cache/
3
+ .bundle/
4
+ public/swagger*
5
+ public/*.png
data/FAQ.md CHANGED
@@ -19,20 +19,23 @@ inconsistencies that might affect the prediction.
19
19
 
20
20
  #### How can I use *lazar* locally on my computer
21
21
  If you are familiar with docker, you can use one of our docker images to run lazar locally:
22
- https://hub.docker.com/r/insilicotox/lazar
23
- https://hub.docker.com/r/insilicotox/nano-lazar
22
+
23
+ [lazar docker image](https://hub.docker.com/r/insilicotox/lazar)
24
+
25
+ [nano-lazar docker image](https://hub.docker.com/r/insilicotox/nano-lazar)
24
26
 
25
27
  If you want to install lazar/nano-lazar without docker you should know how to use UNIX/Linux and the Ruby programming language. Source code and brief installation instructions for the GUIs is available at:
26
28
 
27
- https://github.com/opentox/lazar-gui
28
- https://github.com/opentox/nano-lazar
29
+ [lazar gui source code](https://github.com/opentox/lazar-gui)
30
+
31
+ [nano-lazar gui source code](https://github.com/opentox/nano-lazar)
29
32
 
30
33
  You can also use just the libraries from the command line:
31
34
 
32
- https://github.com/opentox/lazar
35
+ [lazar|nano-lazar lib](https://github.com/opentox/lazar)
33
36
 
34
37
  Documentation is available at:
35
38
 
36
- http://www.rubydoc.info/gems/lazar
39
+ [gem](http://www.rubydoc.info/gems/lazar)
37
40
 
38
41
  lazar depends on a couple of external libraries and programs, that could be difficult to install. Due to limited resources we cannot provide support, please use the docker version if you cannot manage it on your own.
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec
3
- gem "lazar"
4
- gem "qsar-report"
3
+ gem "lazar", :path => "../lazar"
4
+ gem "qsar-report", :path => "../qsar-report"
5
5
  gem "gem-path"
6
6
  gem "sinatra"
7
7
  gem "sinatra-reloader"
data/README.md CHANGED
@@ -1,16 +1,27 @@
1
- IST Software&Services GUI
2
- =========================
1
+ *lazar* GUI
2
+ ===========
3
+ lazar ( Lazy Structure- Activity Relationships ) takes a chemical structure as input and provides predictions for a variety of toxic properties. lazar uses an automated and reproducible read across procedure to calculate predictions. Rationales for predictions, applicability domain estimations and validation results are presented in a clear graphical interface for the critical examination by toxicological experts.
3
4
 
4
5
  Installation:
5
6
  -------------
6
- bundle install
7
+
8
+ ```
9
+ bundle install
10
+ ```
7
11
 
8
12
  Service start:
9
- ------
10
- sudo mongod &
11
- R CMD Rserve --vanilla &
12
- unicorn -p 8088 -c unicorn.rb -E production
13
+ --------------
14
+
15
+ ```
16
+ sudo mongod &
17
+ R CMD Rserve --vanilla &
18
+ unicorn -p 8088 -c unicorn.rb -E production
19
+ ```
13
20
 
14
21
  Visit:
15
22
  ------
16
- http://localhost:8088
23
+
24
+ ```
25
+ http://localhost:8088
26
+ ```
27
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.1
1
+ 1.4.0.pre.0
data/api/api.json ADDED
@@ -0,0 +1,1000 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "servers": [
4
+ {
5
+ "url": "https://SERVER_URI/api"
6
+ }
7
+ ],
8
+ "info": {
9
+ "description": "REST API webservice for lazar. \n\n*lazar* (lazy structure–activity relationships) is a modular framework for\npredictive toxicology.",
10
+ "version": "1.4.0",
11
+ "title": "Lazar REST Service",
12
+ "contact": {
13
+ "name": "in silico toxicology gmbh",
14
+ "email": "info@in-silico.ch",
15
+ "url": "https://in-silico.ch"
16
+ },
17
+ "license": {
18
+ "name": "GNU GENERAL PUBLIC LICENSE",
19
+ "url": "https://github.com/opentox/lazar-rest/blob/master/LICENSE"
20
+ }
21
+ },
22
+ "externalDocs": {
23
+ "description": "See also documentation\n",
24
+ "url": "https://github.com/OpenRiskNet/home/blob/master/openshift/deployments/lazar/README.md"
25
+ },
26
+ "paths": {
27
+ "/api.json": {
28
+ "get": {
29
+ "tags": [
30
+ "api"
31
+ ],
32
+ "description": "Get swagger api in JSON",
33
+ "responses": {
34
+ "200": {
35
+ "$ref": "#/components/responses/200"
36
+ },
37
+ "400": {
38
+ "$ref": "#/components/responses/400"
39
+ },
40
+ "500": {
41
+ "$ref": "#/components/responses/500"
42
+ }
43
+ }
44
+ }
45
+ },
46
+ "/compound/descriptor": {
47
+ "get": {
48
+ "tags": [
49
+ "compound",
50
+ "descriptor"
51
+ ],
52
+ "description": "Get a list of all descriptors",
53
+ "parameters": [
54
+ {
55
+ "$ref": "#/components/parameters/subjectid"
56
+ }
57
+ ],
58
+ "responses": {
59
+ "200": {
60
+ "$ref": "#/components/responses/200"
61
+ },
62
+ "400": {
63
+ "$ref": "#/components/responses/400"
64
+ },
65
+ "401": {
66
+ "$ref": "#/components/responses/401"
67
+ },
68
+ "404": {
69
+ "$ref": "#/components/responses/404"
70
+ },
71
+ "500": {
72
+ "$ref": "#/components/responses/500"
73
+ }
74
+ }
75
+ },
76
+ "post": {
77
+ "tags": [
78
+ "compound",
79
+ "descriptor"
80
+ ],
81
+ "summary": "Descriptor calculation",
82
+ "description": "Calculate descriptors for a single compound as SMILES string",
83
+ "parameters": [
84
+ {
85
+ "$ref": "#/components/parameters/subjectid"
86
+ }
87
+ ],
88
+ "responses": {
89
+ "202": {
90
+ "$ref": "#/components/responses/202"
91
+ },
92
+ "400": {
93
+ "$ref": "#/components/responses/400"
94
+ },
95
+ "401": {
96
+ "$ref": "#/components/responses/401"
97
+ },
98
+ "404": {
99
+ "$ref": "#/components/responses/404"
100
+ },
101
+ "500": {
102
+ "$ref": "#/components/responses/500"
103
+ }
104
+ },
105
+ "requestBody": {
106
+ "description": "identifier and descriptor/s",
107
+ "required": true,
108
+ "content": {
109
+ "application/x-www-form-urlencoded": {
110
+ "schema": {
111
+ "$ref": "#/components/schemas/postdescriptor"
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ },
118
+ "/compound/descriptor/{descriptor}": {
119
+ "get": {
120
+ "tags": [
121
+ "compound",
122
+ "descriptor"
123
+ ],
124
+ "description": "Get informations about a single descriptor",
125
+ "parameters": [
126
+ {
127
+ "name": "descriptor",
128
+ "in": "path",
129
+ "description": "descriptor name or ID",
130
+ "required": true,
131
+ "schema": {
132
+ "type": "string"
133
+ }
134
+ },
135
+ {
136
+ "$ref": "#/components/parameters/subjectid"
137
+ }
138
+ ],
139
+ "responses": {
140
+ "200": {
141
+ "$ref": "#/components/responses/200"
142
+ },
143
+ "400": {
144
+ "$ref": "#/components/responses/400"
145
+ },
146
+ "401": {
147
+ "$ref": "#/components/responses/401"
148
+ },
149
+ "404": {
150
+ "$ref": "#/components/responses/404"
151
+ },
152
+ "500": {
153
+ "$ref": "#/components/responses/500"
154
+ }
155
+ }
156
+ }
157
+ },
158
+ "/compound/{InChI}": {
159
+ "get": {
160
+ "tags": [
161
+ "compound"
162
+ ],
163
+ "description": "Get compound representation",
164
+ "parameters": [
165
+ {
166
+ "$ref": "#/components/parameters/InChI"
167
+ },
168
+ {
169
+ "$ref": "#/components/parameters/subjectid"
170
+ }
171
+ ],
172
+ "responses": {
173
+ "200": {
174
+ "description": "OK",
175
+ "content": {
176
+ "application/json": {
177
+ "schema": {
178
+ "type": "string",
179
+ "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
180
+ }
181
+ },
182
+ "chemical/x-daylight-smiles": {
183
+ "schema": {
184
+ "type": "string",
185
+ "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
186
+ }
187
+ },
188
+ "chemical/x-inchi": {
189
+ "schema": {
190
+ "type": "string",
191
+ "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
192
+ }
193
+ },
194
+ "chemical/x-mdl-sdfile": {
195
+ "schema": {
196
+ "type": "string",
197
+ "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
198
+ }
199
+ },
200
+ "image/png": {
201
+ "schema": {
202
+ "type": "string",
203
+ "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
204
+ }
205
+ },
206
+ "image/svg+xml": {
207
+ "schema": {
208
+ "type": "string",
209
+ "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
210
+ }
211
+ },
212
+ "text/plain": {
213
+ "schema": {
214
+ "type": "string",
215
+ "example": "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
216
+ }
217
+ }
218
+ }
219
+ },
220
+ "400": {
221
+ "$ref": "#/components/responses/400"
222
+ },
223
+ "500": {
224
+ "$ref": "#/components/responses/500"
225
+ }
226
+ }
227
+ }
228
+ },
229
+ "/dataset": {
230
+ "get": {
231
+ "tags": [
232
+ "dataset"
233
+ ],
234
+ "description": "Get a list of all datasets",
235
+ "parameters": [
236
+ {
237
+ "$ref": "#/components/parameters/subjectid"
238
+ }
239
+ ],
240
+ "responses": {
241
+ "200": {
242
+ "$ref": "#/components/responses/200"
243
+ },
244
+ "400": {
245
+ "$ref": "#/components/responses/400"
246
+ },
247
+ "401": {
248
+ "$ref": "#/components/responses/401"
249
+ },
250
+ "404": {
251
+ "$ref": "#/components/responses/404"
252
+ },
253
+ "500": {
254
+ "$ref": "#/components/responses/500"
255
+ }
256
+ }
257
+ }
258
+ },
259
+ "/dataset/{id}": {
260
+ "get": {
261
+ "tags": [
262
+ "dataset"
263
+ ],
264
+ "description": "Get dataset representation",
265
+ "parameters": [
266
+ {
267
+ "$ref": "#/components/parameters/id"
268
+ },
269
+ {
270
+ "$ref": "#/components/parameters/subjectid"
271
+ }
272
+ ],
273
+ "responses": {
274
+ "200": {
275
+ "description": "OK",
276
+ "content": {
277
+ "text/csv": {
278
+ },
279
+ "application/csv": {
280
+ }
281
+ }
282
+ },
283
+ "400": {
284
+ "$ref": "#/components/responses/400"
285
+ },
286
+ "401": {
287
+ "$ref": "#/components/responses/401"
288
+ },
289
+ "403": {
290
+ "$ref": "#/components/responses/403"
291
+ },
292
+ "404": {
293
+ "$ref": "#/components/responses/404"
294
+ },
295
+ "500": {
296
+ "$ref": "#/components/responses/500"
297
+ }
298
+ }
299
+ }
300
+ },
301
+ "/dataset/{id}/{attribute}": {
302
+ "get": {
303
+ "tags": [
304
+ "dataset"
305
+ ],
306
+ "description": "Get dataset representation",
307
+ "parameters": [
308
+ {
309
+ "name": "attribute",
310
+ "in": "path",
311
+ "description": "requested attribute",
312
+ "required": true,
313
+ "schema": {
314
+ "type": "string",
315
+ "enum": [
316
+ "compounds",
317
+ "substances",
318
+ "features"
319
+ ]
320
+ }
321
+ },
322
+ {
323
+ "$ref": "#/components/parameters/id"
324
+ },
325
+ {
326
+ "$ref": "#/components/parameters/subjectid"
327
+ }
328
+ ],
329
+ "responses": {
330
+ "200": {
331
+ "$ref": "#/components/responses/200"
332
+ },
333
+ "400": {
334
+ "$ref": "#/components/responses/400"
335
+ },
336
+ "401": {
337
+ "$ref": "#/components/responses/401"
338
+ },
339
+ "403": {
340
+ "$ref": "#/components/responses/403"
341
+ },
342
+ "404": {
343
+ "$ref": "#/components/responses/404"
344
+ },
345
+ "500": {
346
+ "$ref": "#/components/responses/500"
347
+ }
348
+ }
349
+ }
350
+ },
351
+ "/endpoint": {
352
+ "get": {
353
+ "tags": [
354
+ "endpoint"
355
+ ],
356
+ "description": "Get a list of all available endpoints",
357
+ "parameters": [
358
+ {
359
+ "$ref": "#/components/parameters/subjectid"
360
+ }
361
+ ],
362
+ "responses": {
363
+ "200": {
364
+ "$ref": "#/components/responses/200"
365
+ },
366
+ "400": {
367
+ "$ref": "#/components/responses/400"
368
+ },
369
+ "401": {
370
+ "$ref": "#/components/responses/401"
371
+ },
372
+ "404": {
373
+ "$ref": "#/components/responses/404"
374
+ },
375
+ "500": {
376
+ "$ref": "#/components/responses/500"
377
+ }
378
+ }
379
+ }
380
+ },
381
+ "/endpoint/{endpoint}": {
382
+ "get": {
383
+ "tags": [
384
+ "endpoint"
385
+ ],
386
+ "description": "Get a list of all available models for an endpoint",
387
+ "parameters": [
388
+ {
389
+ "$ref": "#/components/parameters/endpoint"
390
+ },
391
+ {
392
+ "$ref": "#/components/parameters/subjectid"
393
+ }
394
+ ],
395
+ "responses": {
396
+ "200": {
397
+ "$ref": "#/components/responses/200"
398
+ },
399
+ "400": {
400
+ "$ref": "#/components/responses/400"
401
+ },
402
+ "401": {
403
+ "$ref": "#/components/responses/401"
404
+ },
405
+ "404": {
406
+ "$ref": "#/components/responses/404"
407
+ },
408
+ "500": {
409
+ "$ref": "#/components/responses/500"
410
+ }
411
+ }
412
+ }
413
+ },
414
+ "/feature": {
415
+ "get": {
416
+ "tags": [
417
+ "feature"
418
+ ],
419
+ "description": "Get a list of ids for all features",
420
+ "parameters": [
421
+ {
422
+ "$ref": "#/components/parameters/subjectid"
423
+ }
424
+ ],
425
+ "responses": {
426
+ "200": {
427
+ "$ref": "#/components/responses/200"
428
+ },
429
+ "400": {
430
+ "$ref": "#/components/responses/400"
431
+ },
432
+ "401": {
433
+ "$ref": "#/components/responses/401"
434
+ },
435
+ "404": {
436
+ "$ref": "#/components/responses/404"
437
+ },
438
+ "500": {
439
+ "$ref": "#/components/responses/500"
440
+ }
441
+ }
442
+ }
443
+ },
444
+ "/feature/{id}": {
445
+ "get": {
446
+ "tags": [
447
+ "feature"
448
+ ],
449
+ "description": "Get feature representation",
450
+ "parameters": [
451
+ {
452
+ "$ref": "#/components/parameters/id"
453
+ },
454
+ {
455
+ "$ref": "#/components/parameters/subjectid"
456
+ }
457
+ ],
458
+ "responses": {
459
+ "200": {
460
+ "$ref": "#/components/responses/200"
461
+ },
462
+ "400": {
463
+ "$ref": "#/components/responses/400"
464
+ },
465
+ "401": {
466
+ "$ref": "#/components/responses/401"
467
+ },
468
+ "403": {
469
+ "$ref": "#/components/responses/403"
470
+ },
471
+ "404": {
472
+ "$ref": "#/components/responses/404"
473
+ },
474
+ "500": {
475
+ "$ref": "#/components/responses/500"
476
+ }
477
+ }
478
+ }
479
+ },
480
+ "/model": {
481
+ "get": {
482
+ "tags": [
483
+ "model"
484
+ ],
485
+ "description": "Get a list of all prediction models",
486
+ "parameters": [
487
+ {
488
+ "$ref": "#/components/parameters/subjectid"
489
+ }
490
+ ],
491
+ "responses": {
492
+ "200": {
493
+ "$ref": "#/components/responses/200"
494
+ },
495
+ "400": {
496
+ "$ref": "#/components/responses/400"
497
+ },
498
+ "401": {
499
+ "$ref": "#/components/responses/401"
500
+ },
501
+ "404": {
502
+ "$ref": "#/components/responses/404"
503
+ },
504
+ "500": {
505
+ "$ref": "#/components/responses/500"
506
+ }
507
+ }
508
+ }
509
+ },
510
+ "/model/{id}": {
511
+ "get": {
512
+ "tags": [
513
+ "model"
514
+ ],
515
+ "description": "Get model representation",
516
+ "parameters": [
517
+ {
518
+ "$ref": "#/components/parameters/id"
519
+ },
520
+ {
521
+ "$ref": "#/components/parameters/subjectid"
522
+ }
523
+ ],
524
+ "responses": {
525
+ "200": {
526
+ "$ref": "#/components/responses/200"
527
+ },
528
+ "400": {
529
+ "$ref": "#/components/responses/400"
530
+ },
531
+ "401": {
532
+ "$ref": "#/components/responses/401"
533
+ },
534
+ "403": {
535
+ "$ref": "#/components/responses/403"
536
+ },
537
+ "404": {
538
+ "$ref": "#/components/responses/404"
539
+ }
540
+ }
541
+ },
542
+ "post": {
543
+ "tags": [
544
+ "model"
545
+ ],
546
+ "description": "Predict a compound.",
547
+ "parameters": [
548
+ {
549
+ "$ref": "#/components/parameters/id"
550
+ },
551
+ {
552
+ "$ref": "#/components/parameters/subjectid"
553
+ }
554
+ ],
555
+ "responses": {
556
+ "202": {
557
+ "$ref": "#/components/responses/202"
558
+ },
559
+ "400": {
560
+ "$ref": "#/components/responses/400"
561
+ },
562
+ "401": {
563
+ "$ref": "#/components/responses/401"
564
+ },
565
+ "403": {
566
+ "$ref": "#/components/responses/403"
567
+ },
568
+ "404": {
569
+ "$ref": "#/components/responses/404"
570
+ }
571
+ },
572
+ "requestBody": {
573
+ "description": "SMILES identifier.\n",
574
+ "required": true,
575
+ "content": {
576
+ "application/x-www-form-urlencoded": {
577
+ "schema": {
578
+ "$ref": "#/components/schemas/postmodel"
579
+ }
580
+ }
581
+ }
582
+ }
583
+ }
584
+ },
585
+ "/report": {
586
+ "get": {
587
+ "tags": [
588
+ "report"
589
+ ],
590
+ "description": "Get a list of QMRF reports",
591
+ "parameters": [
592
+ {
593
+ "$ref": "#/components/parameters/subjectid"
594
+ }
595
+ ],
596
+ "responses": {
597
+ "200": {
598
+ "$ref": "#/components/responses/200"
599
+ },
600
+ "400": {
601
+ "$ref": "#/components/responses/400"
602
+ },
603
+ "401": {
604
+ "$ref": "#/components/responses/401"
605
+ },
606
+ "404": {
607
+ "$ref": "#/components/responses/404"
608
+ },
609
+ "500": {
610
+ "$ref": "#/components/responses/500"
611
+ }
612
+ }
613
+ }
614
+ },
615
+ "/report/{id}": {
616
+ "get": {
617
+ "tags": [
618
+ "report"
619
+ ],
620
+ "description": "Get QMRF for prediction model",
621
+ "parameters": [
622
+ {
623
+ "$ref": "#/components/parameters/id"
624
+ },
625
+ {
626
+ "$ref": "#/components/parameters/subjectid"
627
+ }
628
+ ],
629
+ "responses": {
630
+ "200": {
631
+ "description": "OK",
632
+ "content": {
633
+ "application/xml": {
634
+ "schema": {
635
+ "type": "object"
636
+ }
637
+ }
638
+ }
639
+ },
640
+ "400": {
641
+ "$ref": "#/components/responses/400"
642
+ },
643
+ "401": {
644
+ "$ref": "#/components/responses/401"
645
+ },
646
+ "403": {
647
+ "$ref": "#/components/responses/403"
648
+ },
649
+ "404": {
650
+ "$ref": "#/components/responses/404"
651
+ }
652
+ }
653
+ }
654
+ },
655
+ "/substance": {
656
+ "get": {
657
+ "tags": [
658
+ "substance"
659
+ ],
660
+ "description": "Get a list of all substances",
661
+ "parameters": [
662
+ {
663
+ "$ref": "#/components/parameters/subjectid"
664
+ }
665
+ ],
666
+ "responses": {
667
+ "200": {
668
+ "$ref": "#/components/responses/200"
669
+ },
670
+ "400": {
671
+ "$ref": "#/components/responses/400"
672
+ },
673
+ "401": {
674
+ "$ref": "#/components/responses/401"
675
+ },
676
+ "404": {
677
+ "$ref": "#/components/responses/404"
678
+ },
679
+ "500": {
680
+ "$ref": "#/components/responses/500"
681
+ }
682
+ }
683
+ }
684
+ },
685
+ "/substance/{id}": {
686
+ "get": {
687
+ "tags": [
688
+ "substance"
689
+ ],
690
+ "description": "Get substance representation by ID",
691
+ "parameters": [
692
+ {
693
+ "$ref": "#/components/parameters/id"
694
+ },
695
+ {
696
+ "$ref": "#/components/parameters/subjectid"
697
+ }
698
+ ],
699
+ "responses": {
700
+ "200": {
701
+ "$ref": "#/components/responses/200"
702
+ },
703
+ "400": {
704
+ "$ref": "#/components/responses/400"
705
+ },
706
+ "401": {
707
+ "$ref": "#/components/responses/401"
708
+ },
709
+ "403": {
710
+ "$ref": "#/components/responses/403"
711
+ },
712
+ "404": {
713
+ "$ref": "#/components/responses/404"
714
+ },
715
+ "500": {
716
+ "$ref": "#/components/responses/500"
717
+ }
718
+ }
719
+ }
720
+ },
721
+ "/validation": {
722
+ "get": {
723
+ "tags": [
724
+ "validation"
725
+ ],
726
+ "description": "Get a list of all validation types",
727
+ "parameters": [
728
+ {
729
+ "$ref": "#/components/parameters/subjectid"
730
+ }
731
+ ],
732
+ "responses": {
733
+ "200": {
734
+ "$ref": "#/components/responses/200"
735
+ },
736
+ "400": {
737
+ "$ref": "#/components/responses/400"
738
+ },
739
+ "401": {
740
+ "$ref": "#/components/responses/401"
741
+ },
742
+ "404": {
743
+ "$ref": "#/components/responses/404"
744
+ },
745
+ "500": {
746
+ "$ref": "#/components/responses/500"
747
+ }
748
+ }
749
+ }
750
+ },
751
+ "/validation/{validationtype}": {
752
+ "get": {
753
+ "tags": [
754
+ "validation"
755
+ ],
756
+ "description": "Get all validations of a validation type",
757
+ "parameters": [
758
+ {
759
+ "$ref": "#/components/parameters/valtype"
760
+ },
761
+ {
762
+ "$ref": "#/components/parameters/subjectid"
763
+ }
764
+ ],
765
+ "responses": {
766
+ "200": {
767
+ "$ref": "#/components/responses/200"
768
+ },
769
+ "400": {
770
+ "$ref": "#/components/responses/400"
771
+ },
772
+ "401": {
773
+ "$ref": "#/components/responses/401"
774
+ },
775
+ "403": {
776
+ "$ref": "#/components/responses/403"
777
+ },
778
+ "404": {
779
+ "$ref": "#/components/responses/404"
780
+ },
781
+ "500": {
782
+ "$ref": "#/components/responses/500"
783
+ }
784
+ }
785
+ }
786
+ },
787
+ "/validation/{validationtype}/{id}": {
788
+ "get": {
789
+ "tags": [
790
+ "validation"
791
+ ],
792
+ "description": "Get validation representation",
793
+ "parameters": [
794
+ {
795
+ "$ref": "#/components/parameters/valtype"
796
+ },
797
+ {
798
+ "$ref": "#/components/parameters/id"
799
+ },
800
+ {
801
+ "$ref": "#/components/parameters/subjectid"
802
+ }
803
+ ],
804
+ "responses": {
805
+ "200": {
806
+ "$ref": "#/components/responses/200"
807
+ },
808
+ "400": {
809
+ "$ref": "#/components/responses/400"
810
+ },
811
+ "401": {
812
+ "$ref": "#/components/responses/401"
813
+ },
814
+ "403": {
815
+ "$ref": "#/components/responses/403"
816
+ },
817
+ "404": {
818
+ "$ref": "#/components/responses/404"
819
+ },
820
+ "500": {
821
+ "$ref": "#/components/responses/500"
822
+ }
823
+ }
824
+ }
825
+ }
826
+ },
827
+ "tags": [
828
+ {
829
+ "name": "api",
830
+ "description": "Swagger API representation in JSON"
831
+ },
832
+ {
833
+ "name": "compound",
834
+ "description": "Compound"
835
+ },
836
+ {
837
+ "name": "dataset",
838
+ "description": "Dataset"
839
+ },
840
+ {
841
+ "name": "descriptor",
842
+ "description": "Descriptor"
843
+ },
844
+ {
845
+ "name": "endpoint",
846
+ "description": "Endpoint"
847
+ },
848
+ {
849
+ "name": "feature",
850
+ "description": "Feature"
851
+ },
852
+ {
853
+ "name": "model",
854
+ "description": "Lazar Model Service"
855
+ },
856
+ {
857
+ "name": "report",
858
+ "description": "QMRF Reporting"
859
+ },
860
+ {
861
+ "name": "substance",
862
+ "description": "Substance"
863
+ },
864
+ {
865
+ "name": "validation",
866
+ "description": "Validation"
867
+ }
868
+ ],
869
+ "components": {
870
+ "schemas": {
871
+ "postmodel": {
872
+ "type": "object",
873
+ "properties": {
874
+ "identifier": {
875
+ "type": "string",
876
+ "example": "O=C1NC(=O)NC=C1"
877
+ }
878
+ }
879
+ },
880
+ "postdescriptor": {
881
+ "type": "object",
882
+ "properties": {
883
+ "identifier": {
884
+ "type": "string",
885
+ "example": "O=C1NC(=O)NC=C1"
886
+ },
887
+ "descriptor": {
888
+ "type": "string",
889
+ "example": "Openbabel.MW,Openbabel.atoms"
890
+ }
891
+ }
892
+ }
893
+ },
894
+ "parameters": {
895
+ "id": {
896
+ "name": "id",
897
+ "in": "path",
898
+ "description": "id",
899
+ "required": true,
900
+ "schema": {
901
+ "type": "string"
902
+ }
903
+ },
904
+ "endpoint": {
905
+ "name": "endpoint",
906
+ "in": "path",
907
+ "description": "type",
908
+ "required": true,
909
+ "schema": {
910
+ "type": "string"
911
+ }
912
+ },
913
+ "InChI": {
914
+ "name": "InChI",
915
+ "in": "path",
916
+ "description": "InChI String",
917
+ "required": true,
918
+ "schema": {
919
+ "type": "string"
920
+ }
921
+ },
922
+ "valtype": {
923
+ "name": "validationtype",
924
+ "in": "path",
925
+ "description": "validation type",
926
+ "required": true,
927
+ "schema": {
928
+ "type": "string",
929
+ "enum": [
930
+ "crossvalidation",
931
+ "leaveoneout",
932
+ "repeatedcrossvalidation",
933
+ "regressioncrossvalidation"
934
+ ]
935
+ }
936
+ },
937
+ "subjectid": {
938
+ "in": "header",
939
+ "name": "subjectid",
940
+ "description": "authorization token",
941
+ "required": false,
942
+ "schema": {
943
+ "type": "string"
944
+ }
945
+ }
946
+ },
947
+ "responses": {
948
+ "200": {
949
+ "description": "OK",
950
+ "content": {
951
+ "application/json": {
952
+ "schema": {
953
+ "type": "object"
954
+ }
955
+ }
956
+ }
957
+ },
958
+ "201": {
959
+ "description": "Created",
960
+ "content": {
961
+ "application/json": {
962
+ "schema": {
963
+ "type": "object"
964
+ }
965
+ }
966
+ }
967
+ },
968
+ "202": {
969
+ "description": "Accepted",
970
+ "content": {
971
+ "application/json": {
972
+ "schema": {
973
+ "type": "object"
974
+ }
975
+ },
976
+ "text/plain": {
977
+ "schema": {
978
+ "type": "object"
979
+ }
980
+ }
981
+ }
982
+ },
983
+ "400": {
984
+ "description": "Bad Request"
985
+ },
986
+ "401": {
987
+ "description": "Unauthorized"
988
+ },
989
+ "403": {
990
+ "description": "Forbidden"
991
+ },
992
+ "404": {
993
+ "description": "Resource Not Found"
994
+ },
995
+ "500": {
996
+ "description": "Server Error"
997
+ }
998
+ }
999
+ }
1000
+ }