lazar-rest 1.0.0
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.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.yardopts +5 -0
- data/ChangeLog +9 -0
- data/Gemfile +6 -0
- data/LICENSE +674 -0
- data/README.md +54 -0
- data/VERSION +1 -0
- data/api/api.json +1209 -0
- data/config.ru +5 -0
- data/lazar-rest.gemspec +26 -0
- data/lib/aa.rb +82 -0
- data/lib/api.rb +9 -0
- data/lib/compound.rb +64 -0
- data/lib/dataset.rb +47 -0
- data/lib/feature.rb +25 -0
- data/lib/lazar-rest.rb +37 -0
- data/lib/model.rb +50 -0
- data/lib/nanoparticle.rb +25 -0
- data/lib/report.rb +209 -0
- data/lib/substance.rb +25 -0
- data/lib/validation.rb +71 -0
- data/test/aa.rb +23 -0
- data/test/all.rb +5 -0
- data/test/api.rb +13 -0
- data/test/compound.rb +54 -0
- data/test/data/test_03_post_descriptor_file.result +152 -0
- data/test/descriptor.rb +48 -0
- data/test/model.rb +17 -0
- data/test/setup.rb +8 -0
- data/test/validation.rb +17 -0
- data/unicorn.rb +2 -0
- data/views/model_details.haml +121 -0
- metadata +176 -0
data/lib/substance.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# Get all substances
|
2
|
+
get "/substance/?" do
|
3
|
+
substances = Substance.all
|
4
|
+
case @accept
|
5
|
+
when "text/uri-list"
|
6
|
+
uri_list = substances.collect{|substance| uri("/substance/#{substance.id}")}
|
7
|
+
return uri_list.join("\n") + "\n"
|
8
|
+
when "application/json"
|
9
|
+
substances = JSON.parse substances.to_json
|
10
|
+
substances.each_index do |idx|
|
11
|
+
substances[idx][:URI] = uri("/substance/#{substances[idx]["_id"]["$oid"]}")
|
12
|
+
end
|
13
|
+
return substances.to_json
|
14
|
+
else
|
15
|
+
bad_request_error "Mime type #{@accept} is not supported."
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Get a substance
|
20
|
+
get "/substance/:id/?" do
|
21
|
+
substance = Substance.find :id => params[:id]
|
22
|
+
resource_not_found_error "Substance with id: #{params[:id]} not found." unless substance
|
23
|
+
substance[:URI] = uri("/substance/#{substance.id}")
|
24
|
+
return substance.to_json
|
25
|
+
end
|
data/lib/validation.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# All available validation types
|
2
|
+
VALIDATION_TYPES = ["repeatedcrossvalidation", "leaveoneout", "crossvalidation", "regressioncrossvalidation"]
|
3
|
+
|
4
|
+
# Get a list of ayll possible validation types
|
5
|
+
# @param [Header] Accept one of text/uri-list, application/json
|
6
|
+
# @return [text/uri-list] URI list of all validation types
|
7
|
+
get "/validation/?" do
|
8
|
+
uri_list = VALIDATION_TYPES.collect{|validationtype| uri("/validation/#{validationtype}")}
|
9
|
+
case @accept
|
10
|
+
when "text/uri-list"
|
11
|
+
return uri_list.join("\n") + "\n"
|
12
|
+
when "application/json"
|
13
|
+
return uri_list.to_json
|
14
|
+
else
|
15
|
+
bad_request_error "Mime type #{@accept} is not supported."
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Get a list of all validations
|
20
|
+
# @param [Header] Accept one of text/uri-list, application/json
|
21
|
+
# @param [Path] Validationtype One of "repeatedcrossvalidation", "leaveoneout", "crossvalidation", "regressioncrossvalidation"
|
22
|
+
# @return [text/uri-list] list of all validations of a validation type
|
23
|
+
get "/validation/:validationtype/?" do
|
24
|
+
bad_request_error "There is no such validation type as: #{params[:validationtype]}" unless VALIDATION_TYPES.include? params[:validationtype]
|
25
|
+
case params[:validationtype]
|
26
|
+
when "repeatedcrossvalidation"
|
27
|
+
validations = Validation::RepeatedCrossValidation.all
|
28
|
+
when "leaveoneout"
|
29
|
+
validations = Validation::LeaveOneOut.all
|
30
|
+
when "crossvalidation"
|
31
|
+
validations = Validation::CrossValidation.all
|
32
|
+
when "regressioncrossvalidation"
|
33
|
+
validations = Validation::RegressionCrossValidation.all
|
34
|
+
end
|
35
|
+
|
36
|
+
case @accept
|
37
|
+
when "text/uri-list"
|
38
|
+
uri_list = validations.collect{|validation| uri("/validation/#{params[:validationtype]}/#{validation.id}")}
|
39
|
+
return uri_list.join("\n") + "\n"
|
40
|
+
when "application/json"
|
41
|
+
validations = JSON.parse validations.to_json
|
42
|
+
validations.each_index do |idx|
|
43
|
+
validations[idx][:URI] = uri("/validation/#{params[:validationtype]}/#{validations[idx]["_id"]["$oid"]}")
|
44
|
+
end
|
45
|
+
return validations.to_json
|
46
|
+
else
|
47
|
+
bad_request_error "Mime type #{@accept} is not supported."
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Get validation representation
|
52
|
+
get "/validation/:validationtype/:id/?" do
|
53
|
+
bad_request_error "There is no such validation type as: #{params[:validationtype]}" unless VALIDATION_TYPES.include? params[:validationtype]
|
54
|
+
case params[:validationtype]
|
55
|
+
when "repeatedcrossvalidation"
|
56
|
+
validation = Validation::RepeatedCrossValidation.find params[:id]
|
57
|
+
when "leaveoneout"
|
58
|
+
validation = Validation::LeaveOneOut.find params[:id]
|
59
|
+
when "crossvalidation"
|
60
|
+
validation = Validation::CrossValidation.find params[:id]
|
61
|
+
when "regressioncrossvalidation"
|
62
|
+
validation = Validation::RegressionCrossValidation.find params[:id]
|
63
|
+
end
|
64
|
+
|
65
|
+
resource_not_found_error "#{params[:validationtype]} with id: #{params[:id]} not found." unless validation
|
66
|
+
#model[:URI] = uri("/model/#{model.id}")
|
67
|
+
#model[:neighbor_algorithm_parameters][:feature_dataset_uri] = uri("/dataset/#{model[:neighbor_algorithm_parameters][:feature_dataset_id]}") if model[:neighbor_algorithm_parameters][:feature_dataset_id]
|
68
|
+
#model[:training_dataset_uri] = uri("/dataset/#{model.training_dataset_id}") if model.training_dataset_id
|
69
|
+
#model[:prediction_feature_uri] = uri("/dataset/#{model.prediction_feature_id}") if model.prediction_feature_id
|
70
|
+
return validation.to_json
|
71
|
+
end
|
data/test/aa.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative "setup.rb"
|
2
|
+
|
3
|
+
class AATest < MiniTest::Test
|
4
|
+
|
5
|
+
def test_0_login
|
6
|
+
res = RestClientWrapper.post(File.join($host,"aa/authenticate"),{:username=>"guest", :password => "guest"},{:Accept => "text/plain"})
|
7
|
+
assert_equal res.code, 200
|
8
|
+
assert_equal res.size, 62
|
9
|
+
@@token = res
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_1_logout
|
13
|
+
assert @@token
|
14
|
+
assert_equal @@token.size, 62
|
15
|
+
res = RestClientWrapper.post(File.join($host,"aa/logout"),{:subjectid=>@@token},{:Accept => "text/plain"})
|
16
|
+
assert_equal res.code, 200
|
17
|
+
assert_equal res, "Successfully logged out. \n"
|
18
|
+
res = RestClientWrapper.post(File.join($host,"aa/logout"),{:subjectid=>@@token},{:Accept => "text/plain"})
|
19
|
+
assert_equal res.code, 200
|
20
|
+
assert_equal res, "Logout failed.\n"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/test/all.rb
ADDED
data/test/api.rb
ADDED
data/test/compound.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require_relative "setup.rb"
|
2
|
+
|
3
|
+
$compound_uri = "#{$host}/compound"
|
4
|
+
$compound = ["InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"]
|
5
|
+
|
6
|
+
class CompoundTest < MiniTest::Test
|
7
|
+
|
8
|
+
def test_00_get_inchi
|
9
|
+
res = RestClientWrapper.get File.join($compound_uri, $compound[0]), {}, {:accept => 'chemical/x-inchi'}
|
10
|
+
assert_equal res.code, 200
|
11
|
+
assert_equal res, "InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_01_get_smiles
|
15
|
+
res = RestClientWrapper.get File.join($compound_uri, $compound[0]), {}, {:accept => "chemical/x-daylight-smiles"}
|
16
|
+
assert_equal res.code, 200
|
17
|
+
assert_equal res, "c1ccccc1"
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_02_get_sdf
|
21
|
+
res = RestClientWrapper.get File.join($compound_uri, $compound[0]), {}, {:accept => "chemical/x-mdl-sdfile"}
|
22
|
+
assert_equal res.code, 200
|
23
|
+
assert res.include?(" 6 12 1 0 0 0 0\nM END\n$$$")
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_03_get_png
|
27
|
+
res = RestClientWrapper.get File.join($compound_uri, $compound[0]), {}, {:accept => "image/png"}
|
28
|
+
assert_equal res.code, 200
|
29
|
+
assert_equal "image/png", res.headers[:content_type]
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_04_get_svg
|
33
|
+
res = RestClientWrapper.get File.join($compound_uri, $compound[0]), {}, {:accept => "image/svg+xml"}
|
34
|
+
assert_equal res.code, 200
|
35
|
+
assert res.include?("<svg version=")
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_05_get_json
|
39
|
+
res = RestClientWrapper.get File.join($compound_uri, $compound[0]), {}, {:accept => "application/json"}
|
40
|
+
assert_equal res.code, 200
|
41
|
+
js = JSON.parse res
|
42
|
+
assert_equal js["chemblid"], "CHEMBL277500"
|
43
|
+
assert_equal js["names"].first, "BENZENE"
|
44
|
+
assert_equal js["names"][6], "71-43-2"
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_06_get_names
|
48
|
+
res = RestClientWrapper.get File.join($compound_uri, $compound[0]), {}, {:accept => "text/plain"}
|
49
|
+
assert_equal res.code, 200
|
50
|
+
assert res.include?("Benzene")
|
51
|
+
assert res.include?("401765_ALDRICH")
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"SMILES": "CC=O",
|
4
|
+
"Openbabel.logP": "0.2052",
|
5
|
+
"Cdk.AtomCount.nAtom": "7",
|
6
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
7
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
8
|
+
"Cdk.CarbonTypes.C1SP2": "1",
|
9
|
+
"Cdk.CarbonTypes.C2SP2": "0",
|
10
|
+
"Cdk.CarbonTypes.C3SP2": "0",
|
11
|
+
"Cdk.CarbonTypes.C1SP3": "1",
|
12
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
13
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
14
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
15
|
+
"Joelib.LogP": "0.7679"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"SMILES": "CC(=O)Nc1ccc2c(c1)Cc1c2cccc1",
|
19
|
+
"Openbabel.logP": "3.2892",
|
20
|
+
"Cdk.AtomCount.nAtom": "30",
|
21
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
22
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
23
|
+
"Cdk.CarbonTypes.C1SP2": "1",
|
24
|
+
"Cdk.CarbonTypes.C2SP2": "8",
|
25
|
+
"Cdk.CarbonTypes.C3SP2": "4",
|
26
|
+
"Cdk.CarbonTypes.C1SP3": "1",
|
27
|
+
"Cdk.CarbonTypes.C2SP3": "1",
|
28
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
29
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
30
|
+
"Joelib.LogP": "5.3165"
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"SMILES": "NC(=O)/C(=C\\c1ccc(o1)[N+](=O)[O-])/c1ccco1",
|
34
|
+
"Openbabel.logP": "3.0302",
|
35
|
+
"Cdk.AtomCount.nAtom": "26",
|
36
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
37
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
38
|
+
"Cdk.CarbonTypes.C1SP2": "3",
|
39
|
+
"Cdk.CarbonTypes.C2SP2": "7",
|
40
|
+
"Cdk.CarbonTypes.C3SP2": "1",
|
41
|
+
"Cdk.CarbonTypes.C1SP3": "0",
|
42
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
43
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
44
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
45
|
+
"Joelib.LogP": "3.6734"
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"SMILES": "Nc1n[nH]cn1",
|
49
|
+
"Openbabel.logP": "-0.0319",
|
50
|
+
"Cdk.AtomCount.nAtom": "10",
|
51
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
52
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
53
|
+
"Cdk.CarbonTypes.C1SP2": "0",
|
54
|
+
"Cdk.CarbonTypes.C2SP2": "0",
|
55
|
+
"Cdk.CarbonTypes.C3SP2": "0",
|
56
|
+
"Cdk.CarbonTypes.C1SP3": "0",
|
57
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
58
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
59
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
60
|
+
"Joelib.LogP": "0.7337"
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"SMILES": "[O-][Br](=O)=O.[K+]",
|
64
|
+
"Openbabel.logP": "0.4892",
|
65
|
+
"Cdk.AtomCount.nAtom": "2",
|
66
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
67
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
68
|
+
"Cdk.CarbonTypes.C1SP2": "0",
|
69
|
+
"Cdk.CarbonTypes.C2SP2": "0",
|
70
|
+
"Cdk.CarbonTypes.C3SP2": "0",
|
71
|
+
"Cdk.CarbonTypes.C1SP3": "0",
|
72
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
73
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
74
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
75
|
+
"Joelib.LogP": "-5.9945"
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"SMILES": "[Cl-].[Cl-].[Cd+2]",
|
79
|
+
"Openbabel.logP": "-5.9945",
|
80
|
+
"Cdk.AtomCount.nAtom": "3",
|
81
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
82
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
83
|
+
"Cdk.CarbonTypes.C1SP2": "0",
|
84
|
+
"Cdk.CarbonTypes.C2SP2": "0",
|
85
|
+
"Cdk.CarbonTypes.C3SP2": "0",
|
86
|
+
"Cdk.CarbonTypes.C1SP3": "0",
|
87
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
88
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
89
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
90
|
+
"Joelib.LogP": "-0.2597"
|
91
|
+
},
|
92
|
+
{
|
93
|
+
"SMILES": "[O-]S(=O)(=O)[O-].[Cd+2]",
|
94
|
+
"Openbabel.logP": "-0.2597",
|
95
|
+
"Cdk.AtomCount.nAtom": "6",
|
96
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
97
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
98
|
+
"Cdk.CarbonTypes.C1SP2": "0",
|
99
|
+
"Cdk.CarbonTypes.C2SP2": "0",
|
100
|
+
"Cdk.CarbonTypes.C3SP2": "0",
|
101
|
+
"Cdk.CarbonTypes.C1SP3": "0",
|
102
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
103
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
104
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
105
|
+
"Joelib.LogP": "5.0725"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"SMILES": "OC(=O)CSc1nc(cc(n1)Cl)Nc1cccc(c1C)C",
|
109
|
+
"Openbabel.logP": "3.7401",
|
110
|
+
"Cdk.AtomCount.nAtom": "35",
|
111
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
112
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
113
|
+
"Cdk.CarbonTypes.C1SP2": "3",
|
114
|
+
"Cdk.CarbonTypes.C2SP2": "5",
|
115
|
+
"Cdk.CarbonTypes.C3SP2": "2",
|
116
|
+
"Cdk.CarbonTypes.C1SP3": "3",
|
117
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
118
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
119
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
120
|
+
"Joelib.LogP": "2.2807"
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"SMILES": "COCCl",
|
124
|
+
"Openbabel.logP": "0.8291",
|
125
|
+
"Cdk.AtomCount.nAtom": "9",
|
126
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
127
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
128
|
+
"Cdk.CarbonTypes.C1SP2": "0",
|
129
|
+
"Cdk.CarbonTypes.C2SP2": "0",
|
130
|
+
"Cdk.CarbonTypes.C3SP2": "0",
|
131
|
+
"Cdk.CarbonTypes.C1SP3": "0",
|
132
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
133
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
134
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
135
|
+
"Joelib.LogP": "2.5399"
|
136
|
+
},
|
137
|
+
{
|
138
|
+
"SMILES": "C=CC(=C)Cl",
|
139
|
+
"Openbabel.logP": "1.9249",
|
140
|
+
"Cdk.AtomCount.nAtom": "10",
|
141
|
+
"Cdk.CarbonTypes.C1SP1": "0",
|
142
|
+
"Cdk.CarbonTypes.C2SP1": "0",
|
143
|
+
"Cdk.CarbonTypes.C1SP2": "2",
|
144
|
+
"Cdk.CarbonTypes.C2SP2": "2",
|
145
|
+
"Cdk.CarbonTypes.C3SP2": "0",
|
146
|
+
"Cdk.CarbonTypes.C1SP3": "0",
|
147
|
+
"Cdk.CarbonTypes.C2SP3": "0",
|
148
|
+
"Cdk.CarbonTypes.C3SP3": "0",
|
149
|
+
"Cdk.CarbonTypes.C4SP3": "0",
|
150
|
+
"Joelib.LogP": null
|
151
|
+
}
|
152
|
+
]
|
data/test/descriptor.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require_relative "setup.rb"
|
2
|
+
|
3
|
+
$host = "#{$host}"
|
4
|
+
|
5
|
+
|
6
|
+
class DescriptorTest < MiniTest::Test
|
7
|
+
|
8
|
+
def test_00_get_descriptors
|
9
|
+
result = RestClientWrapper.get File.join($host, "compound/descriptor"), {}, {:accept => "text/plain"}
|
10
|
+
assert_equal result.code, 200
|
11
|
+
assert result.include?("Joelib.KierShape1: JOELIb does not provide meaningful descriptions, see java/JoelibDescriptors.java for details.\nJoelib.KierShape2: JOELIb does not provide meaningful descriptions, see java/JoelibDescriptors.java for details."), "Descriptor list is not complete."
|
12
|
+
assert_equal 355, result.lines.count
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_01_get_descriptor
|
16
|
+
result = RestClientWrapper.get File.join($host, "compound/descriptor", "Openbabel.MW"), {}, {:accept => "text/plain"}
|
17
|
+
assert_equal result.code, 200
|
18
|
+
assert_equal result, "Molecular Weight filter"
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_03_get_descriptor_id
|
22
|
+
result = RestClientWrapper.get File.join($host, "compound/descriptor", "Openbabel.HBA1"), {}, {:accept => "application/json"}
|
23
|
+
assert_equal result.code, 200
|
24
|
+
json = JSON.parse(result)
|
25
|
+
assert_equal json["description"], "Number of Hydrogen Bond Acceptors 1 (JoelLib)"
|
26
|
+
bsonid = json["_id"]["$oid"]
|
27
|
+
result = RestClientWrapper.get File.join($host, "compound/descriptor", bsonid), {}, {:accept => "application/json"}
|
28
|
+
json = JSON.parse(result)
|
29
|
+
assert_equal json["name"], "Openbabel.HBA1"
|
30
|
+
assert_equal json["numeric"], true
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_04_post_descriptor
|
34
|
+
result = RestClientWrapper.post File.join($host, "compound/descriptor"), {:identifier => "CC(=O)CC(C)C#N", :descriptor => "Joelib.LogP"}, {:accept => "application/csv"}
|
35
|
+
assert_equal result.code, 200
|
36
|
+
assert_equal "SMILES,CC(=O)CC(C)C#N\n\"Joelib.LogP\",2.65908", result
|
37
|
+
end
|
38
|
+
|
39
|
+
# currently not applicable
|
40
|
+
#def test_05_post_descriptor_file
|
41
|
+
# file = File.join(DATA_DIR, "hamster_carcinogenicity.mini.csv")
|
42
|
+
# result = RestClientWrapper.post File.join($host, "compound/descriptor"), {:file => File.open(file), :descriptor => "Openbabel.logP,Cdk.AtomCount,Cdk.CarbonTypes,Joelib.LogP"}, {:accept => "application/json"}
|
43
|
+
# assert_equal result.code, 200
|
44
|
+
# proof_result = File.read(File.join(REST_DATA_DIR, "test_03_post_descriptor_file.result"))
|
45
|
+
# assert_equal result, proof_result.strip
|
46
|
+
#end
|
47
|
+
|
48
|
+
end
|
data/test/model.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative "setup.rb"
|
2
|
+
|
3
|
+
$model_uri = "#{$host}/model"
|
4
|
+
class ModelTest < MiniTest::Test
|
5
|
+
|
6
|
+
def test_00_get_urilist
|
7
|
+
res = RestClientWrapper.get $model_uri, {}, {:accept => "text/uri-list"}
|
8
|
+
assert_equal res.code, 200
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_01_get_400
|
12
|
+
assert_raises OpenTox::BadRequestError do
|
13
|
+
res = OpenTox::RestClientWrapper.get $model_uri, {}, {:accept => "text/notimplemented-type"}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/test/setup.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
|
3
|
+
require_relative '../../lazar/lib/lazar.rb'
|
4
|
+
require_relative '../../lazar/test/setup.rb'
|
5
|
+
$host = "https://enm.in-silico.ch"
|
6
|
+
include OpenTox
|
7
|
+
REST_TEST_DIR ||= File.expand_path(File.dirname(__FILE__))
|
8
|
+
REST_DATA_DIR ||= File.join(REST_TEST_DIR,"data")
|
data/test/validation.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative "setup.rb"
|
2
|
+
|
3
|
+
$validation_uri = "#{$host}/validation"
|
4
|
+
class ModelTest < MiniTest::Test
|
5
|
+
|
6
|
+
def test_00_get_urilist
|
7
|
+
res = RestClientWrapper.get $validation_uri, {}, {:accept => "text/uri-list"}
|
8
|
+
assert_equal res.code, 200
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_01_get_400
|
12
|
+
assert_raises OpenTox::BadRequestError do
|
13
|
+
res = OpenTox::RestClientWrapper.get $validation_uri, {}, {:accept => "text/notimplemented-type"}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|