From 962773d59d94f8d16dae11b6290fdf30aaf09d7b Mon Sep 17 00:00:00 2001 From: rautenberg Date: Mon, 3 Jun 2013 15:25:33 +0200 Subject: make yard documentation full yard 0.8.6.1 compatible --- lib/validation.rb | 132 +++++++++++++++++++++++++++--------------------------- 1 file changed, 66 insertions(+), 66 deletions(-) (limited to 'lib/validation.rb') diff --git a/lib/validation.rb b/lib/validation.rb index c4f6868..cb73ce6 100644 --- a/lib/validation.rb +++ b/lib/validation.rb @@ -2,7 +2,7 @@ require "yaml" module OldOpenTox attr_accessor :metadata, :uri - + def initialize(uri=nil) @metadata = {} self.uri = uri if uri @@ -13,17 +13,17 @@ module OldOpenTox yaml = OpenTox::RestClientWrapper.get(uri,nil,{:subjectid => subjectid, :accept => "application/x-yaml"}) @metadata = YAML.load(yaml) end - + def delete (subjectid=nil) OpenTox::RestClientWrapper.delete(@uri.to_s,nil,{:subjectid => subjectid}) end end module OpenTox - + class Validation include OldOpenTox - + # find validation, raises error if not found # @param [String] uri # @param [String,optional] subjectid @@ -33,10 +33,10 @@ module OpenTox val.load_metadata( subjectid ) val end - + # returns a filtered list of validation uris - # @param [Hash,optional] params, validation-params to filter the uris (could be model, training_dataset, ..) - # @return [Array] + # @param params [Hash,optional] validation-params to filter the uris (could be model, training_dataset, ..) + # @return [Array] def self.list( params={} ) filter_string = "" params.each do |k,v| @@ -46,7 +46,7 @@ module OpenTox end (OpenTox::RestClientWrapper.get($validation[:uri]+filter_string).split("\n")) end - + # creates a training test split validation, waits until it finishes, may take some time # @param [Hash] params (required:algorithm_uri,dataset_uri,prediction_feature, optional:algorithm_params,split_ratio(0.67),random_seed(1)) # @param [String,optional] subjectid @@ -58,7 +58,7 @@ module OpenTox params,{:content_type => "text/uri-list"},waiting_task ) Validation.new(wait_for_task(uri)) end - + # creates a training test validation, waits until it finishes, may take some time # @param [Hash] params (required:algorithm_uri,training_dataset_uri,prediction_feature,test_dataset_uri,optional:algorithm_params) # @param [String,optional] subjectid @@ -70,7 +70,7 @@ module OpenTox params,{:content_type => "text/uri-list"},waiting_task ) Validation.new(wait_for_task(uri)) end - + # creates a bootstrapping validation, waits until it finishes, may take some time # @param [Hash] params (required:algorithm_uri,dataset_uri,prediction_feature, optional:algorithm_params,random_seed(1)) # @param [String,optional] subjectid @@ -82,7 +82,7 @@ module OpenTox params,{:content_type => "text/uri-list"},waiting_task ) Validation.new(wait_for_task(uri)) end - + # looks for report for this validation, creates a report if no report is found # @param [String,optional] subjectid # @param [OpenTox::Task,optional] waiting_task (can be a OpenTox::Subtask as well), progress is updated accordingly @@ -92,20 +92,20 @@ module OpenTox @report = ValidationReport.create(@uri, {}, subjectid, waiting_task) unless @report @report.uri end - + # creates a validation object from crossvaldiation statistics, raise error if not found # (as crossvaldiation statistics are returned as an average valdidation over all folds) - # @param [String] crossvalidation uri + # @param crossvalidation_uri [String] crossvalidation uri # @param [String,optional] subjectid # @return [OpenTox::Validation] def self.from_cv_statistics( crossvalidation_uri, subjectid=nil ) find( File.join(crossvalidation_uri, 'statistics'),subjectid ) 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]] - # -> 99 inactive compounds have been predicted as active + # -> 99 inactive compounds have been predicted as active def confusion_matrix raise "no classification statistics, probably a regression valdiation" unless @metadata[RDF::OT.classificationStatistics] matrix = @metadata[RDF::OT.classificationStatistics][RDF::OT.confusionMatrix][RDF::OT.confusionMatrixCell] @@ -124,38 +124,38 @@ module OpenTox end table end - + # returns probability-distribution for a given prediction # it takes all predictions into account that have a confidence value that is >= confidence and that have the same predicted value # (minimum 12 predictions with the hightest confidence are selected (even if the confidence is lower than the given param) - # - # @param [Float] confidence value (between 0 and 1) - # @param [String] predicted value - # @param [String,optional] subjectid + # + # @param confidence [Float] confidence value (between 0 and 1) + # @param prediction [String] predicted value + # @param subjectid [String,optional] # @return [Hash] see 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}} + # 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 # # Example 2: - # validation.probabilities(0.8,"active") - # -> {:min_confidence=>0.45, :num_predictions=>12, :probs=>{"active"=>0.9, "moderate"=>0.1 "inactive"=>0}} + # 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, {:subjectid => subjectid, :accept => "application/x-yaml"})) end end - + class Crossvalidation include OldOpenTox attr_reader :report - + # find crossvalidation, raises error if not found # @param [String] uri # @param [String,optional] subjectid @@ -165,10 +165,10 @@ module OpenTox cv.load_metadata( subjectid ) cv end - + # returns a filtered list of crossvalidation uris - # @param [Hash,optional] params, crossvalidation-params to filter the uris (could be algorithm, dataset, ..) - # @return [Array] + # @param params [Hash,optional] crossvalidation-params to filter the uris (could be algorithm, dataset, ..) + # @return [Array] def self.list( params={} ) filter_string = "" params.each do |k,v| @@ -201,29 +201,29 @@ module OpenTox @report = CrossvalidationReport.create(@uri, subjectid, waiting_task) unless @report @report.uri end - + # loads metadata via yaml from crossvalidation object # fields (like for example the validations) can be acces via validation.metadata[RDF::OT.validation] def load_metadata( subjectid=nil ) @metadata = YAML.load(OpenTox::RestClientWrapper.get(uri,nil,{:subjectid => subjectid, :accept => "application/x-yaml"})) end - + # returns a Validation object containing the statistics of the crossavlidation def statistics( subjectid=nil ) Validation.from_cv_statistics( @uri, subjectid ) end - + # documentation see OpenTox::Validation.probabilities def probabilities( confidence, prediction, subjectid=nil ) YAML.load(OpenTox::RestClientWrapper.get(@uri+"/statistics/probabilities?prediction="+prediction.to_s+"&confidence="+confidence.to_s,nil, {:subjectid => subjectid, :accept => "application/x-yaml"})) end - + end - + class ValidationReport include OldOpenTox - + # finds ValidationReport via uri, raises error if not found # @param [String] uri # @param [String,optional] subjectid @@ -234,23 +234,23 @@ module OpenTox rep.load_metadata( subjectid ) rep end - + # finds ValidationReport for a particular validation - # @param [String] crossvalidation uri - # @param [String,optional] subjectid + # @param validation_uri [String] crossvalidation uri + # @param subjectid [String,optional] # @return [OpenTox::ValidationReport] nil if no report found def self.find_for_validation( validation_uri, subjectid=nil ) uris = RestClientWrapper.get(File.join($validation[:uri], "/report/validation?validation="+validation_uri),nil,{:subjectid => subjectid}).chomp.split("\n") uris.size==0 ? nil : ValidationReport.new(uris[-1]) end - + # creates a validation report via validation - # @param [String] validation uri - # @param [Hash] params addiditonal possible + # @param validation_uri [String] validation uri + # @param params [Hash] params addiditonal possible # (min_confidence, params={}, min_num_predictions, max_num_predictions) - # @param [String,optional] subjectid - # @param [OpenTox::Task,optional] waiting_task (can be a OpenTox::Subtask as well), progress is updated accordingly + # @param subjectid [String,optional] + # @param waiting_task [OpenTox::Task,optional] (can be a OpenTox::Subtask as well), progress is updated accordingly # @return [OpenTox::ValidationReport] def self.create( validation_uri, params={}, subjectid=nil, waiting_task=nil ) params = {} if params==nil @@ -262,12 +262,12 @@ module OpenTox uri = wait_for_task(uri) ValidationReport.new(uri) end - + end class CrossvalidationReport include OldOpenTox - + # finds CrossvalidationReport via uri, raises error if not found # @param [String] uri # @param [String,optional] subjectid @@ -278,21 +278,21 @@ module OpenTox rep.load_metadata( subjectid ) rep end - + # finds CrossvalidationReport for a particular crossvalidation - # @param [String] crossvalidation uri - # @param [String,optional] subjectid + # @param crossvalidation_uri [String] crossvalidation uri + # @param subjectid [String,optional] # @return [OpenTox::CrossvalidationReport] nil if no report found def self.find_for_crossvalidation( crossvalidation_uri, subjectid=nil ) uris = RestClientWrapper.get(File.join($validation[:uri], "/report/crossvalidation?crossvalidation="+crossvalidation_uri),nil,{:subjectid => subjectid}).chomp.split("\n") uris.size==0 ? nil : CrossvalidationReport.new(uris[-1]) end - + # creates a crossvalidation report via crossvalidation - # @param [String] crossvalidation uri - # @param [String,optional] subjectid - # @param [OpenTox::Task,optional] waiting_task (can be a OpenTox::Subtask as well), progress is updated accordingly + # @param crossvalidation_uri [String] crossvalidation uri + # @param subjectid [String,optional] + # @param waiting_task [OpenTox::Task,optional] (can be a OpenTox::Subtask as well), progress is updated accordingly # @return [OpenTox::CrossvalidationReport] def self.create( crossvalidation_uri, subjectid=nil, waiting_task=nil ) uri = RestClientWrapper.post(File.join($validation[:uri],"/report/crossvalidation"), @@ -301,11 +301,11 @@ module OpenTox CrossvalidationReport.new(uri) end end - - + + class AlgorithmComparisonReport include OldOpenTox - + # finds AlgorithmComparisonReport via uri, raises error if not found # @param [String] uri # @param [String,optional] subjectid @@ -316,23 +316,23 @@ module OpenTox rep.load_metadata( subjectid ) rep end - + # finds AlgorithmComparisonReport for a particular crossvalidation - # @param [String] crossvalidation uri - # @param [String,optional] subjectid + # @param crossvalidation_uri [String] crossvalidation uri + # @param subjectid [String,optional] # @return [OpenTox::AlgorithmComparisonReport] nil if no report found def self.find_for_crossvalidation( crossvalidation_uri, subjectid=nil ) uris = RestClientWrapper.get(File.join($validation[:uri], "/report/algorithm_comparison?crossvalidation="+crossvalidation_uri),nil,{:subjectid => subjectid}).chomp.split("\n") uris.size==0 ? nil : AlgorithmComparisonReport.new(uris[-1]) end - + # creates a algorithm comparison report via crossvalidation uris - # @param [Hash] crossvalidation uri_hash, see example - # @param [Hash] params addiditonal possible + # @param crossvalidation_uri_hash [Hash] crossvalidation uri_hash, see example + # @param params [Hash] params addiditonal possible # (ttest_significance, ttest_attributes, min_confidence, min_num_predictions, max_num_predictions) - # @param [String,optional] subjectid - # @param [OpenTox::Task,optional] waiting_task (can be a OpenTox::Subtask as well), progress is updated accordingly + # @param subjectid [String,optional] + # @param waiting_task [OpenTox::Task,optional] (can be a OpenTox::Subtask as well), progress is updated accordingly # @return [OpenTox::AlgorithmComparisonReport] # example for hash: # { :lazar-bbrc => [ http://host/validation/crossvalidation/x1, http://host/validation/crossvalidation/x2 ], @@ -355,7 +355,7 @@ module OpenTox uri = wait_for_task(uri) AlgorithmComparisonReport.new(uri) end - end - + end + end -- cgit v1.2.3