summaryrefslogtreecommitdiff
path: root/lib/model.rb
blob: 0fa3be62a9a5a554c9529c18f2523207f95b50b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
module OpenTox

	# key: /models
	# set: dataset uris
	module Model 

		class Lazar < OpenTox

			# Create a new prediction model from a dataset
			def initialize(params)
				super(params[:uri])
			end

			def self.find(name)
				RestClient.get File.join(@@config[:services]["opentox-lazar"], 'model', URI.encode(params[:name]))
			end

			def self.find_all
				RestClient.get File.join(@@config[:services]["opentox-lazar"], 'models')#.split("\n")
			end

			# Predict a compound
			def predict(compound)
				LazarPrediction.new(:uri => RestClient.post(@uri, :compound_uri => compound.uri))
			end

		end

	end

	module Prediction

		module Classification

			class Lazar < OpenTox

				def initialize(params)
					super(params[:uri])
				end

				def classification
					YAML.load(RestClient.get @uri)[:classification]
				end

				def confidence
					YAML.load(RestClient.get @uri)[:confidence]
				end

				def neighbors
					RestClient.get @uri + '/neighbors' 
				end

				def features
					RestClient.get @uri + '/features' 
				end

			end

		end

	end
end