diff options
author | Martin Gütlein <martin.guetlein@gmail.com> | 2010-01-07 12:09:28 +0100 |
---|---|---|
committer | Martin Gütlein <martin.guetlein@gmail.com> | 2010-01-07 12:09:28 +0100 |
commit | 003296a4a1df68717ca8396f27c6962656e474e8 (patch) | |
tree | 2fef13c053d826bcaff1739d7624e94a2a230e53 /application.rb | |
parent | 15f49fc9862fa995612c7960becc2ce98f2bd1c4 (diff) |
add validations to crossvalidation output
added param algorihtm_params to split and cv
added examples and example-preparation
Diffstat (limited to 'application.rb')
-rw-r--r-- | application.rb | 92 |
1 files changed, 74 insertions, 18 deletions
diff --git a/application.rb b/application.rb index fa444be..1c7106f 100644 --- a/application.rb +++ b/application.rb @@ -8,30 +8,86 @@ require "report/report_application.rb" end get '/examples/?' do - - transform_example + content_type "text/plain" + Demo.transform_example +end + +get '/prepare_examples/?' do + Demo.prepare_example_resources + "done" end private -def transform_example - file = File.new("EXAMPLES", "r") - res = "" - while (line = file.gets) - res += line - end - file.close +class Demo - sub = { "validation_service" => url_for("", :full), - #"validation_id" => "??", - #"model_service" => "??", - #"model_id" => "??", - #"dataset_service" => "??", - "dataset_id" => "Hamster Carcenogenicity"} + @@file=File.new("data/hamster_carcinogenicity.owl","r") + @@model=File.join @@config[:services]["opentox-model"],"1" + @@feature="http://www.epa.gov/NCCT/dsstox/CentralFieldDef.html#ActivityOutcome_CPDBAS_Hamster" + @@alg = File.join @@config[:services]["opentox-algorithm"],"lazar" + @@alg_params = "feature_generation_uri="+File.join(@@config[:services]["opentox-algorithm"],"fminer") + @@data=File.join @@config[:services]["opentox-dataset"],"1" + @@train_data=File.join @@config[:services]["opentox-dataset"],"2" + @@test_data=File.join @@config[:services]["opentox-dataset"],"3" - sub.each do |k,v| - res.gsub!(/<#{k}>/,v) + def self.transform_example + + file = File.new("EXAMPLES", "r") + res = "" + while (line = file.gets) + res += line + end + file.close + + sub = { "validation_service" => @@config[:services]["opentox-validation"], + "validation_id" => "1", + "model_uri" => @@model, + "dataset_uri" => @@data, + "training_dataset_uri" => @@train_data, + "test_dataset_uri" => @@test_data, + "prediction_feature" => @@feature, + "algorithm_uri" => @@alg, + "algorithm_params" => @@alg_params, + "crossvalidation_id" => "1",} + + sub.each do |k,v| + res.gsub!(/<#{k}>/,v) + end + res + end + + def self.delete_all(uri_list_service) + uri_list = RestClient.get(uri_list_service) + uri_list.split("\n").each do |uri| + RestClient.delete(uri) + end end - res + def self.prepare_example_resources + + delete_all(@@config[:services]["opentox-dataset"]) + data = File.read(@@file.path) + data_uri = RestClient.post @@config[:services]["opentox-dataset"], data, :content_type => "application/rdf+xml" + puts "uploaded dataset "+data_uri + raise "failed to prepare demo" unless data_uri==@@data + + Lib::Validation.auto_migrate! + delete_all(@@config[:services]["opentox-model"]) + vali_uri = RestClient.post File.join(@@config[:services]["opentox-validation"],'/validation/training_test_split'), { :dataset_uri => data_uri, + :algorithm_uri => @@alg, + :prediction_feature => @@feature, + :algorithm_params => @@alg_params } + puts "created validation via training test split "+vali_uri + raise "failed to prepare demo" unless vali_uri==File.join(@@config[:services]["opentox-validation"],'/validation/1') + + Lib::Crossvalidation.auto_migrate! + cv_uri = RestClient.post File.join(@@config[:services]["opentox-validation"],'/crossvalidation'), { :dataset_uri => data_uri, + :algorithm_uri => @@alg, + :prediction_feature => @@feature, + :algorithm_params => @@alg_params, + :num_folds => 5, :stratified => false } + puts "created crossvalidation "+cv_uri + raise "failed to prepare demo" unless cv_uri==File.join(@@config[:services]["opentox-validation"],'/crossvalidation/1') + + end end |