diff options
author | Christoph Helma <helma@in-silico.ch> | 2013-07-04 16:39:00 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2013-07-04 16:39:00 +0200 |
commit | 14f55a3bfc2b980115c2f3fadd703fd3de4c3445 (patch) | |
tree | c0c5d654b7d9aae8dc1bc6ef1fae297126f06513 /lib | |
parent | 0c441d6c0b06b969bd18809eefd99cc082e32612 (diff) | |
parent | 313bebc5756714d433f7936dec1ef4f8fb67a6ab (diff) |
Merge branch 'development' of github.com:opentox/opentox-client into development
Diffstat (limited to 'lib')
-rw-r--r-- | lib/overwrite.rb | 15 | ||||
-rw-r--r-- | lib/validation.rb | 36 |
2 files changed, 28 insertions, 23 deletions
diff --git a/lib/overwrite.rb b/lib/overwrite.rb index b2382e0..fc050ce 100644 --- a/lib/overwrite.rb +++ b/lib/overwrite.rb @@ -61,7 +61,7 @@ class String html << "<h3>Description</h3><pre><p>"+description.link_urls+"</p></pre>" if description html << "<h3>Related links</h3><pre><p>"+related_links.link_urls+"</p></pre>" if related_links html << "<h3>Content</h3>" if description || related_links - html << "<pre><p style=\"padding:15px; border:10px solid \#DBC87B\">" + html << "<pre><p style=\"padding:15px; border:10px solid \#C5C1E4\">" html << "<img src=\"data:image/png;base64,#{Base64.encode64(png_image)}\">\n" if png_image html << self.link_urls html << "</p></pre></body></html>" @@ -101,18 +101,23 @@ module URI parsed_uri = URI.parse(uri + (subjectid ? "?subjectid=#{CGI.escape subjectid}" : "")) http_code = URI.task?(uri) ? 600 : 400 http = Net::HTTP.new(parsed_uri.host, parsed_uri.port) - if (URI.ssl? uri) == true + unless (URI.ssl? uri) == true + http = Net::HTTP.new(parsed_uri.host, parsed_uri.port) + request = Net::HTTP::Head.new(parsed_uri.request_uri) + http.request(request).code.to_i < http_code + else + http = Net::HTTP.new(parsed_uri.host, parsed_uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE + request = Net::HTTP::Head.new(parsed_uri.request_uri) + http.request(request).code.to_i < http_code end - request = Net::HTTP::Head.new(parsed_uri.request_uri) - http.request(request).code.to_i < http_code rescue false end def self.valid? uri - u = URI::parse(uri) + u = URI.parse(uri) u.scheme!=nil and u.host!=nil rescue URI::InvalidURIError false diff --git a/lib/validation.rb b/lib/validation.rb index cb73ce6..3b1cf13 100644 --- a/lib/validation.rb +++ b/lib/validation.rb @@ -37,14 +37,14 @@ module OpenTox # returns a filtered list of validation uris # @param params [Hash,optional] validation-params to filter the uris (could be model, training_dataset, ..) # @return [Array] - def self.list( params={} ) + def self.list( params={}, subjectid=nil ) filter_string = "" params.each do |k,v| filter_string += (filter_string.length==0 ? "?" : "&") v = v.to_s.gsub(/;/, "%3b") if v.to_s =~ /;/ filter_string += k.to_s+"="+v.to_s end - (OpenTox::RestClientWrapper.get($validation[:uri]+filter_string).split("\n")) + (OpenTox::RestClientWrapper.get($validation[:uri]+filter_string,nil,{:subjectid => subjectid}).split("\n")) end # creates a training test split validation, waits until it finishes, may take some time @@ -55,7 +55,7 @@ module OpenTox def self.create_training_test_split( params, subjectid=nil, waiting_task=nil ) params[:subjectid] = subjectid if subjectid uri = OpenTox::RestClientWrapper.post( File.join($validation[:uri],"training_test_split"), - params,{:content_type => "text/uri-list"},waiting_task ) + params,{:content_type => "text/uri-list", :subjectid => subjectid},waiting_task ) Validation.new(wait_for_task(uri)) end @@ -67,7 +67,7 @@ module OpenTox def self.create_training_test_validation( params, subjectid=nil, waiting_task=nil ) params[:subjectid] = subjectid if subjectid uri = OpenTox::RestClientWrapper.post( File.join($validation[:uri],"training_test_validation"), - params,{:content_type => "text/uri-list"},waiting_task ) + params,{:content_type => "text/uri-list", :subjectid => subjectid},waiting_task ) Validation.new(wait_for_task(uri)) end @@ -79,7 +79,7 @@ module OpenTox def self.create_bootstrapping_validation( params, subjectid=nil, waiting_task=nil ) params[:subjectid] = subjectid if subjectid uri = OpenTox::RestClientWrapper.post( File.join($validation[:uri],"bootstrapping"), - params,{:content_type => "text/uri-list"},waiting_task ) + params,{:content_type => "text/uri-list", :subjectid => subjectid},waiting_task ) Validation.new(wait_for_task(uri)) end @@ -103,8 +103,8 @@ module OpenTox end # returns confusion matrix as array, predicted values are in rows - # example: - # [[nil,"active","moderate","inactive"],["active",1,3,99],["moderate",4,2,8],["inactive",3,8,6]] + # @example + # [[nil,"active","moderate","inactive"],["active",1,3,99],["moderate",4,2,8],["inactive",3,8,6]] # -> 99 inactive compounds have been predicted as active def confusion_matrix raise "no classification statistics, probably a regression valdiation" unless @metadata[RDF::OT.classificationStatistics] @@ -133,17 +133,17 @@ module OpenTox # @param prediction [String] predicted value # @param subjectid [String,optional] # @return [Hash] see example - # - # Example 1: + # @example + # Example 1: # validation.probabilities(0.3,"active") # -> { :min_confidence=>0.32, :num_predictions=>20, :probs=>{"active"=>0.7, "moderate"=>0.25 "inactive"=>0.05 } } - # there have been 20 "active" predictions with confidence >= 0.3, 70 percent of them beeing correct + # there have been 20 "active" predictions with confidence >= 0.3, 70 percent of them beeing correct # - # Example 2: - # validation.probabilities(0.8,"active") - # -> { :min_confidence=>0.45, :num_predictions=>12, :probs=>{"active"=>0.9, "moderate"=>0.1 "inactive"=>0 } } - # the given confidence value was to high (i.e. <12 predictions with confidence value >= 0.8) - # the top 12 "active" predictions have a min_confidence of 0.45, 90 percent of them beeing correct + # Example 2: + # validation.probabilities(0.8,"active") + # -> { :min_confidence=>0.45, :num_predictions=>12, :probs=>{"active"=>0.9, "moderate"=>0.1 "inactive"=>0 } } + # the given confidence value was to high (i.e. <12 predictions with confidence value >= 0.8) + # the top 12 "active" predictions have a min_confidence of 0.45, 90 percent of them beeing correct # def probabilities( confidence, prediction, subjectid=nil ) YAML.load(OpenTox::RestClientWrapper.get(@uri+"/probabilities?prediction="+prediction.to_s+"&confidence="+confidence.to_s,nil, @@ -187,7 +187,7 @@ module OpenTox def self.create( params, subjectid=nil, waiting_task=nil ) params[:subjectid] = subjectid if subjectid uri = OpenTox::RestClientWrapper.post( File.join($validation[:uri],"crossvalidation"), - params,{:content_type => "text/uri-list"},waiting_task ) + params,{:content_type => "text/uri-list", :subjectid => subjectid},waiting_task ) uri = wait_for_task(uri) Crossvalidation.new(uri) end @@ -258,7 +258,7 @@ module OpenTox params[:validation_uris] = validation_uri params[:subjectid] = subjectid uri = RestClientWrapper.post(File.join($validation[:uri],"/report/validation"), - params, {}, waiting_task ) + params, {:subjectid => subjectid}, waiting_task ) uri = wait_for_task(uri) ValidationReport.new(uri) end @@ -351,7 +351,7 @@ module OpenTox params[:validation_uris] = validation_uris.join(",") params[:identifier] = identifier.join(",") params[:subjectid] = subjectid - uri = RestClientWrapper.post(File.join($validation[:uri],"/report/algorithm_comparison"), params, {}, waiting_task ) + uri = RestClientWrapper.post(File.join($validation[:uri],"/report/algorithm_comparison"), params, {:subjectid => subjectid}, waiting_task ) uri = wait_for_task(uri) AlgorithmComparisonReport.new(uri) end |