diff options
Diffstat (limited to 'model.rb')
-rw-r--r-- | model.rb | 155 |
1 files changed, 101 insertions, 54 deletions
@@ -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! |