summaryrefslogtreecommitdiff
path: root/model.rb
diff options
context:
space:
mode:
Diffstat (limited to 'model.rb')
-rw-r--r--model.rb155
1 files changed, 101 insertions, 54 deletions
diff --git a/model.rb b/model.rb
index da12f0b..7d22a4d 100644
--- a/model.rb
+++ b/model.rb
@@ -1,46 +1,93 @@
-class ToxCreateModel
-
- include DataMapper::Resource
-
- property :id, Serial
- property :name, String, :length => 255
- property :warnings, Text, :length => 2**32-1
- property :type, String
- property :created_at, DateTime
-
- property :task_uri, String, :length => 255
- property :uri, String, :length => 255
-
- property :validation_task_uri, String, :length => 255
- property :validation_uri, String, :length => 255
-
- property :validation_report_task_uri, String, :length => 255
- property :validation_report_uri, String, :length => 255
-
- property :validation_qmrf_task_uri, String, :length => 255
- property :validation_qmrf_uri, String, :length => 255
-
- property :nr_compounds, Integer
- property :nr_predictions, Integer
- property :true_positives, Integer
- property :false_positives, Integer
- property :true_negatives, Integer
- property :false_negatives, Integer
- property :correct_predictions, Integer
- property :weighted_area_under_roc, Float
- property :sensitivity, Float
- property :specificity, Float
- property :r_square, Float
- property :root_mean_squared_error, Float
- property :mean_absolute_error, Float
-
- def status
+require 'ohm'
+#require 'redis/objects'
+#@@redis = Redis.new(:thread_safe=>true)#(:host => '127.0.0.1', :port => 6379)
+
+class ToxCreateModel < Ohm::Model
+
+ #include Redis::Objects
+ #include DataMapper::Resource
+ #attribute :id
+ attribute :name
+ attribute :warnings
+ attribute :error_messages
+ attribute :type
+ attribute :status
+ attribute :created_at
+
+ attribute :task_uri
+ attribute :uri
+
+ attribute :training_dataset
+ attribute :feature_dataset
+ #attributey :validation_task_uri
+ attribute :validation_uri
+
+ #attributey :validation_report_task_uri
+ attribute :validation_report_uri
+
+ #attributey :validation_qmrf_task_uri
+ attribute :validation_qmrf_uri
+
+ attribute :nr_compounds
+ attribute :nr_predictions
+ attribute :true_positives
+ attribute :false_positives
+ attribute :true_negatives
+ attribute :false_negatives
+ attribute :correct_predictions
+ attribute :weighted_area_under_roc
+ attribute :sensitivity
+ attribute :specificity
+ attribute :r_square
+ attribute :root_mean_squared_error
+ attribute :mean_absolute_error
+
+ attribute :web_uri
+
+ attr_accessor :subjectid
+ @subjectid = nil
+
+ #after :save, :check_policy
+
+=begin
+ attr_accessor :id, :name, :warnings, :error_messages, :type, :status, :created_at, :task_uri, :uri, :training_dataset, :feature_dataset, :validation_task_uri, :validation_uri, :validation_report_task_uri, :validation_report_uri, :validation_qmrf_task_uri, :validation_qmrf_uri, :nr_compounds, :nr_predictions, :true_positives, :false_positives, :true_negatives, :false_negatives, :correct_predictions, :weighted_area_under_roc, :sensitivity, :specificity, :r_square, :root_mean_squared_error, :mean_absolute_error, :web_uri
+
+ def self.all
+ end
+
+ def self.get(id)
+ end
+
+ def self.create(params)
+ @id = @@redis.incr "toxcreate"
+ params.each { |k,v| @@redis.hset "toxcreate:#{@id}", k, v }
+ self.get(@id)
+ end
+
+ def update(params)
+ end
+
+ def method_missing
+ begin
+ rescue
+ raise "Unknown method"
+ end
+ end
+
+ attr_accessor :subjectid
+ @subjectid = nil
+
+ after :save, :check_policy
+
+def status
#begin
RestClient.get(File.join(@task_uri, 'hasStatus')).body
#rescue
# "Service offline"
#end
end
+=end
+=begin
def validation_status
begin
@@ -92,29 +139,23 @@ class ToxCreateModel
def process
+ LOGGER.debug self.to_yaml
+
if @uri.nil? and status == "Completed"
- update :uri => RestClient.get(File.join(@task_uri, 'resultURI')).body
- lazar = YAML.load(RestClient.get(@uri, :accept => "application/x-yaml").body)
- case lazar.dependentVariables
- when /classification/
- update :type => "classification"
- when /regression/
- update :type => "regression"
- else
- update :type => "unknown"
- end
+ #update :uri => RestClient.get(File.join(@task_uri, 'resultURI')).body
+ #lazar = YAML.load(RestClient.get(@uri, :accept => "application/x-yaml").body)
elsif @validation_uri.nil? and validation_status == "Completed"
begin
- update :validation_uri => RestClient.get(File.join(@validation_task_uri, 'resultURI')).body
- LOGGER.debug "Validation URI: #{@validation_uri}"
+ #update :validation_uri => RestClient.get(File.join(@validation_task_uri, 'resultURI')).body
+ #LOGGER.debug "Validation URI: #{@validation_uri}"
- update :validation_report_task_uri => RestClient.post(File.join(@@config[:services]["opentox-validation"],"/report/crossvalidation"), :validation_uris => @validation_uri).body
- LOGGER.debug "Validation Report Task URI: #{@validation_report_task_uri}"
+ #update :validation_report_task_uri => RestClient.post(File.join(CONFIG[:services]["opentox-validation"],"/report/crossvalidation"), :validation_uris => @validation_uri).body
+ #LOGGER.debug "Validation Report Task URI: #{@validation_report_task_uri}"
- update :validation_qmrf_task_uri => RestClient.post(File.join(@@config[:services]["opentox-validation"],"/reach_report/qmrf"), :model_uri => @uri).body
- LOGGER.debug "QMRF Report Task URI: #{@validation_qmrf_task_uri}"
+ #update :validation_qmrf_task_uri => RestClient.post(File.join(CONFIG[:services]["opentox-validation"],"/reach_report/qmrf"), :model_uri => @uri).body
+ #LOGGER.debug "QMRF Report Task URI: #{@validation_qmrf_task_uri}"
uri = File.join(@validation_uri, 'statistics')
yaml = RestClient.get(uri).body
@@ -178,7 +219,13 @@ class ToxCreateModel
end
end
+=end
+
+ private
+ def check_policy
+ OpenTox::Authorization.check_policy(web_uri, subjectid)
+ end
end
-DataMapper.auto_upgrade!
+#DataMapper.auto_upgrade!