summaryrefslogtreecommitdiff
path: root/validation
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2011-04-08 15:39:55 +0200
committermguetlein <martin.guetlein@gmail.com>2011-05-03 11:46:30 +0200
commit78751b778a5dabfac142a017fc1e0d8d1c045acd (patch)
tree6257c90d38d1082637a65e3846944bd313464edd /validation
parentd5fe870fa184ef44390a0311664b7813360a44f5 (diff)
switch from datamapper/mysql to redis (sqlite for qmrf)
Diffstat (limited to 'validation')
-rwxr-xr-xvalidation/validation_application.rb63
-rwxr-xr-xvalidation/validation_format.rb21
-rwxr-xr-xvalidation/validation_service.rb53
-rwxr-xr-xvalidation/validation_test.rb20
4 files changed, 84 insertions, 73 deletions
diff --git a/validation/validation_application.rb b/validation/validation_application.rb
index e07acf0..4ef05a9 100755
--- a/validation/validation_application.rb
+++ b/validation/validation_application.rb
@@ -10,7 +10,8 @@ require 'validation/validation_service.rb'
get '/crossvalidation/?' do
LOGGER.info "list all crossvalidations"
#uri_list = Validation::Crossvalidation.all.collect{ |cv| cv.crossvalidation_uri }.join("\n")+"\n"
- uri_list = Lib::DataMapperUtil.all(Validation::Crossvalidation,params).collect{ |cv| cv.crossvalidation_uri }.join("\n")+"\n"
+ #uri_list = Lib::DataMapperUtil.all(Validation::Crossvalidation,params).collect{ |cv| cv.crossvalidation_uri }.join("\n")+"\n"
+ uri_list = Validation::Crossvalidation.all.collect{|cv| cv.crossvalidation_uri}.join("\n") + "\n"
#uri_list = Validation::Crossvalidation.find_like(params).collect{ |cv| cv.crossvalidation_uri }.join("\n")+"\n"
if request.env['HTTP_ACCEPT'] =~ /text\/html/
@@ -41,7 +42,7 @@ post '/crossvalidation/?' do
cv_params = { :dataset_uri => params[:dataset_uri],
:algorithm_uri => params[:algorithm_uri] }
[ :num_folds, :random_seed, :stratified ].each{ |sym| cv_params[sym] = params[sym] if params[sym] }
- cv = Validation::Crossvalidation.new cv_params
+ cv = Validation::Crossvalidation.create cv_params
cv.subjectid = @subjectid
cv.perform_cv( params[:prediction_feature], params[:algorithm_params], task )
cv.crossvalidation_uri
@@ -62,7 +63,7 @@ post '/crossvalidation/cleanup/?' do
deleted << cv.crossvalidation_uri
#Validation::Crossvalidation.delete(cv.id)
cv.subjectid = @subjectid
- cv.delete
+ cv.delete_crossvalidation
#end
end
LOGGER.info "crossvalidation cleanup, deleted "+deleted.size.to_s+" cvs"
@@ -124,13 +125,19 @@ get '/crossvalidation/:id/statistics' do
raise OpenTox::BadRequestError.new "Crossvalidation '"+params[:id].to_s+"' not finished" unless crossvalidation.finished
Lib::MergeObjects.register_merge_attributes( Validation::Validation,
- Lib::VAL_MERGE_AVG,Lib::VAL_MERGE_SUM,Lib::VAL_MERGE_GENERAL-[:date,:validation_uri,:crossvalidation_uri]) unless
+ Validation::VAL_MERGE_AVG,Validation::VAL_MERGE_SUM,Validation::VAL_MERGE_GENERAL-[:date,:validation_uri,:crossvalidation_uri]) unless
Lib::MergeObjects.merge_attributes_registered?(Validation::Validation)
#v = Lib::MergeObjects.merge_array_objects( Validation::Validation.find( :all, :conditions => { :crossvalidation_id => params[:id] } ) )
- v = Lib::MergeObjects.merge_array_objects( Validation::Validation.all( :crossvalidation_id => params[:id] ) )
+ # convert ohm:set into array, as ohm:set[0]=nil(!)
+ vals = Validation::Validation.find( :crossvalidation_id => params[:id] ).collect{|x| x}
+# LOGGER.debug vals.collect{|v| v.validation_uri}.join("\n")
+# LOGGER.debug vals.size
+# LOGGER.debug vals.class
+
+ v = Lib::MergeObjects.merge_array_objects( vals )
v.created_at = nil
- v.id = nil
+ #v.id = nil
case request.env['HTTP_ACCEPT'].to_s
when /text\/html/
@@ -159,7 +166,7 @@ delete '/crossvalidation/:id/?' do
cv = Validation::Crossvalidation.get(params[:id])
cv.subjectid = @subjectid
raise OpenTox::NotFoundError.new "Crossvalidation '#{params[:id]}' not found." unless cv
- cv.delete
+ cv.delete_crossvalidation
end
#get '/crossvalidation/:id/validations' do
@@ -208,8 +215,8 @@ get '/?' do
LOGGER.info "list all validations, params: "+params.inspect
#uri_list = Validation::Validation.find_like(params).collect{ |v| v.validation_uri }.join("\n")+"\n"
#uri_list = Validation::Validation.all(params).collect{ |v| v.validation_uri }.join("\n")+"\n"
- uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
-
+ #uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ uri_list = Validation::Validation.all.collect{|v| v.validation_uri}.join("\n") + "\n"
if request.env['HTTP_ACCEPT'] =~ /text\/html/
related_links =
@@ -241,7 +248,7 @@ post '/test_set_validation' do
LOGGER.info "creating test-set-validation "+params.inspect
if params[:model_uri] and params[:test_dataset_uri] and !params[:training_dataset_uri] and !params[:algorithm_uri]
task = OpenTox::Task.create( "Perform test-set-validation", url_for("/", :full) ) do |task| #, params
- v = Validation::Validation.new :validation_type => "test_set_validation",
+ v = Validation::Validation.create :validation_type => "test_set_validation",
:model_uri => params[:model_uri],
:test_dataset_uri => params[:test_dataset_uri],
:test_target_dataset_uri => params[:test_target_dataset_uri],
@@ -262,8 +269,9 @@ get '/test_set_validation' do
#uri_list = Validation::Validation.find( :all, :conditions => { :validation_type => "test_set_validation" } ).collect{ |v| v.validation_uri }.join("\n")+"\n"
#uri_list = Validation::Validation.all( :validation_type => "test_set_validation" ).collect{ |v| v.validation_uri }.join("\n")+"\n"
- params[:validation_type] = "test_set_validation"
- uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ #params[:validation_type] = "test_set_validation"
+ #uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ uri_list = Validation::Validation.find(:validation_type => "test_set_validation").collect{|v| v.validation_uri}.join("\n") + "\n"
if request.env['HTTP_ACCEPT'] =~ /text\/html/
related_links =
@@ -285,7 +293,7 @@ post '/training_test_validation/?' do
LOGGER.info "creating training-test-validation "+params.inspect
if params[:algorithm_uri] and params[:training_dataset_uri] and params[:test_dataset_uri] and params[:prediction_feature] and !params[:model_uri]
task = OpenTox::Task.create( "Perform training-test-validation", url_for("/", :full) ) do |task| #, params
- v = Validation::Validation.new :validation_type => "training_test_validation",
+ v = Validation::Validation.create :validation_type => "training_test_validation",
:algorithm_uri => params[:algorithm_uri],
:training_dataset_uri => params[:training_dataset_uri],
:test_dataset_uri => params[:test_dataset_uri],
@@ -306,8 +314,9 @@ get '/training_test_validation' do
LOGGER.info "list all training-test-validations, params: "+params.inspect
#uri_list = Validation::Validation.find( :all, :conditions => { :validation_type => "training_test_validation" } ).collect{ |v| v.validation_uri }.join("\n")+"\n"
#uri_list = Validation::Validation.all( :validation_type => "training_test_validation" ).collect{ |v| v.validation_uri }.join("\n")+"\n"
- params[:validation_type] = "training_test_validation"
- uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ #params[:validation_type] = "training_test_validation"
+ #uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ uri_list = Validation::Validation.find(:validation_type => "training_test_validation").collect{|v| v.validation_uri}.join("\n") + "\n"
if request.env['HTTP_ACCEPT'] =~ /text\/html/
related_links =
@@ -340,7 +349,7 @@ post '/bootstrapping' do
params.merge!( Validation::Util.bootstrapping( params[:dataset_uri],
params[:prediction_feature], @subjectid,
params[:random_seed], OpenTox::SubTask.create(task,0,33)) )
- v = Validation::Validation.new :validation_type => "bootstrapping",
+ v = Validation::Validation.create :validation_type => "bootstrapping",
:test_target_dataset_uri => params[:dataset_uri],
:prediction_feature => params[:prediction_feature],
:algorithm_uri => params[:algorithm_uri]
@@ -355,8 +364,9 @@ get '/bootstrapping' do
LOGGER.info "list all bootstrapping-validations, params: "+params.inspect
#uri_list = Validation::Validation.find( :all, :conditions => { :validation_type => "bootstrapping" } ).collect{ |v| v.validation_uri }.join("\n")+"\n"
#uri_list = Validation::Validation.all( :validation_type => "bootstrapping" ).collect{ |v| v.validation_uri }.join("\n")+"\n"
- params[:validation_type] = "bootstrapping"
- uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ #params[:validation_type] = "bootstrapping"
+ #uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ uri_list = Validation::Validation.find(:validation_type => "bootstrapping").collect{|v| v.validation_uri}.join("\n") + "\n"
if request.env['HTTP_ACCEPT'] =~ /text\/html/
related_links =
@@ -388,7 +398,7 @@ post '/training_test_split' do
params.merge!( Validation::Util.train_test_dataset_split(params[:dataset_uri], params[:prediction_feature],
@subjectid, params[:split_ratio], params[:random_seed], OpenTox::SubTask.create(task,0,33)))
- v = Validation::Validation.new :validation_type => "training_test_split",
+ v = Validation::Validation.create :validation_type => "training_test_split",
:training_dataset_uri => params[:training_dataset_uri],
:test_dataset_uri => params[:test_dataset_uri],
:test_target_dataset_uri => params[:dataset_uri],
@@ -406,8 +416,9 @@ get '/training_test_split' do
LOGGER.info "list all training-test-split-validations, params: "+params.inspect
#uri_list = Validation::Validation.find( :all, :conditions => { :validation_type => "training_test_split" } ).collect{ |v| v.validation_uri }.join("\n")+"\n"
#uri_list = Validation::Validation.all( :validation_type => "training_test_split" ).collect{ |v| v.validation_uri }.join("\n")+"\n"
- params[:validation_type] = "training_test_split"
- uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ #params[:validation_type] = "training_test_split"
+ #uri_list = Lib::DataMapperUtil.all(Validation::Validation,params).collect{ |v| v.validation_uri }.join("\n")+"\n"
+ uri_list = Validation::Validation.find(:validation_type => "training_test_split").collect{|v| v.validation_uri}.join("\n") + "\n"
if request.env['HTTP_ACCEPT'] =~ /text\/html/
related_links =
@@ -440,7 +451,7 @@ post '/cleanup/?' do
deleted << val.validation_uri
#Validation::Validation.delete(val.id)
val.subjectid = @subjectid
- val.delete
+ val.delete_validation
end
LOGGER.info "validation cleanup, deleted "+deleted.size.to_s+" validations"
deleted.join("\n")+"\n"
@@ -463,7 +474,7 @@ post '/validate_datasets' do
params[:validation_type] = "validate_datasets"
if params[:model_uri]
- v = Validation::Validation.new params
+ v = Validation::Validation.create params
v.subjectid = @subjectid
v.compute_validation_stats_with_model(nil,false,task)
else
@@ -475,7 +486,7 @@ post '/validate_datasets' do
predicted_feature = params.delete("predicted_feature")
feature_type = "classification" if params.delete("classification")!=nil
feature_type = "regression" if params.delete("regression")!=nil
- v = Validation::Validation.new params
+ v = Validation::Validation.create params
v.subjectid = @subjectid
v.compute_validation_stats(feature_type,predicted_feature,nil,nil,false,task)
end
@@ -532,7 +543,7 @@ get '/:id' do
# rescue ActiveRecord::RecordNotFound => ex
# raise OpenTox::NotFoundError.new "Validation '#{params[:id]}' not found."
# end
- validation = Validation::Validation.get(params[:id])
+ validation = Validation::Validation[params[:id]]
raise OpenTox::NotFoundError.new "Validation '#{params[:id]}' not found." unless validation
case request.env['HTTP_ACCEPT'].to_s
@@ -566,5 +577,5 @@ delete '/:id' do
validation.subjectid = @subjectid
raise OpenTox::NotFoundError.new "Validation '#{params[:id]}' not found." unless validation
content_type "text/plain"
- validation.delete
+ validation.delete_validation
end \ No newline at end of file
diff --git a/validation/validation_format.rb b/validation/validation_format.rb
index f69ceac..6fdea61 100755
--- a/validation/validation_format.rb
+++ b/validation/validation_format.rb
@@ -4,15 +4,15 @@ require "lib/format_util.rb"
module Validation
# adding to_yaml and to_rdf functionality to validation
- class Validation < Lib::Validation
+ class Validation
# builds hash for valiation, as the internal presentation differs from the owl-object
# the hash is directly printed in to_yaml, or added to the owl-structure
def get_content_as_hash()
h = {}
- (Lib::VAL_PROPS - [:validation_uri]).each do |p|
- h[p] = self.send(p)
+ (VAL_PROPS - [:validation_uri]).each do |p|
+ h[p] = self.send(p.to_s)
end
if crossvalidation_id!=nil
cv = {:type => OT.CrossvalidationInfo}
@@ -22,13 +22,14 @@ module Validation
h[:crossvalidation_info] = cv
end
if classification_statistics
- raise "classification_statistics is no has: "+classification_statistics.class.to_s unless classification_statistics.is_a?(Hash)
+ raise "classification_statistics is no hash: "+classification_statistics.class.to_s+" -> '"+
+ classification_statistics.to_s+"'" unless classification_statistics.is_a?(Hash)
clazz = { :type => OT.ClassificationStatistics }
- Lib::VAL_CLASS_PROPS_SINGLE.each{ |p| clazz[p] = classification_statistics[p] }
+ VAL_CLASS_PROPS_SINGLE.each{ |p| clazz[p] = classification_statistics[p] }
# transpose results per class
class_values = {}
- Lib::VAL_CLASS_PROPS_PER_CLASS.each do |p|
+ VAL_CLASS_PROPS_PER_CLASS.each do |p|
raise "missing classification statitstics: "+p.to_s+" "+classification_statistics.inspect if classification_statistics[p]==nil
classification_statistics[p].each do |class_value, property_value|
class_values[class_value] = {:class_value => class_value, :type => OT.ClassValueStatistics} unless class_values.has_key?(class_value)
@@ -54,7 +55,7 @@ module Validation
h[:classification_statistics] = clazz
elsif regression_statistics
regr = {:type => OT.RegressionStatistics }
- Lib::VAL_REGR_PROPS.each{ |p| regr[p] = regression_statistics[p]}
+ VAL_REGR_PROPS.each{ |p| regr[p] = regression_statistics[p]}
h[:regression_statistics] = regr
end
return h
@@ -72,17 +73,17 @@ module Validation
end
- class Crossvalidation < Lib::Crossvalidation
+ class Crossvalidation
def get_content_as_hash
h = {}
- (Lib::CROSS_VAL_PROPS_REDUNDANT - [:crossvalidation_uri]).each do |p|
+ (CROSS_VAL_PROPS_REDUNDANT - [:crossvalidation_uri]).each do |p|
h[p] = self.send(p)
end
v = []
#Validation.find( :all, :conditions => { :crossvalidation_id => self.id } ).each do |val|
- Validation.all( :crossvalidation_id => self.id ).each do |val|
+ Validation.find( :crossvalidation_id => self.id ).each do |val|
v.push( val.validation_uri.to_s )
end
h[:validation_uris] = v
diff --git a/validation/validation_service.rb b/validation/validation_service.rb
index a1efba5..93c167f 100755
--- a/validation/validation_service.rb
+++ b/validation/validation_service.rb
@@ -30,7 +30,7 @@ end
module Validation
- class Validation < Lib::Validation
+ class Validation
# constructs a validation object, Rsets id und uri
#def initialize( params={} )
@@ -43,7 +43,7 @@ module Validation
# deletes a validation
# PENDING: model and referenced datasets are deleted as well, keep it that way?
- def delete( delete_all=true )
+ def delete_validation( delete_all=true )
if (delete_all)
to_delete = [:model_uri, :training_dataset_uri, :test_dataset_uri, :test_target_dataset_uri, :prediction_dataset_uri ]
case self.validation_type
@@ -72,7 +72,7 @@ module Validation
end
end
end
- self.destroy
+ self.delete
if (subjectid)
begin
res = OpenTox::Authorization.delete_policies_from_uri(validation_uri, subjectid)
@@ -222,17 +222,13 @@ module Validation
# :percent_unpredicted => prediction.percent_unpredicted,
# :finished => true}
# self.save!
- self.attributes= {:num_instances => prediction.num_instances,
+ self.update :num_instances => prediction.num_instances,
:num_without_class => prediction.num_without_class,
:percent_without_class => prediction.percent_without_class,
:num_unpredicted => prediction.num_unpredicted,
:percent_unpredicted => prediction.percent_unpredicted,
- :finished => true}
- begin
- self.save
- rescue DataMapper::SaveFailureError => e
- raise "could not save validation: "+e.resource.errors.inspect
- end
+ :finished => true
+ raise unless self.valid?
end
task.progress(100) if task
@@ -240,7 +236,7 @@ module Validation
end
end
- class Crossvalidation < Lib::Crossvalidation
+ class Crossvalidation
# constructs a crossvalidation, id and uri are set
#def initialize( params={} )
@@ -262,12 +258,12 @@ module Validation
end
# deletes a crossvalidation, all validations are deleted as well
- def delete
- Validation.all(:crossvalidation_id => self.id).each do |v|
+ def delete_crossvalidation
+ Validation.find(:crossvalidation_id => self.id).each do |v|
v.subjectid = self.subjectid
- v.delete
+ v.delete_validation
end
- self.destroy
+ self.delete
if (subjectid)
begin
res = OpenTox::Authorization.delete_policies_from_uri(crossvalidation_uri, subjectid)
@@ -281,6 +277,9 @@ module Validation
# creates the cv folds
def create_cv_datasets( prediction_feature, task=nil )
+ self.random_seed = 1 unless self.random_seed
+ self.num_folds = 10 unless self.num_folds
+ self.stratified = false unless self.stratified
if copy_cv_datasets( prediction_feature )
# dataset folds of a previous crossvalidaiton could be used
task.progress(100) if task
@@ -296,7 +295,7 @@ module Validation
i = 0
task_step = 100 / self.num_folds.to_f;
@tmp_validations.each do | val |
- validation = Validation.new val
+ validation = Validation.create val
validation.subjectid = self.subjectid
validation.validate_algorithm( algorithm_params,
OpenTox::SubTask.create(task, i * task_step, ( i + 1 ) * task_step) )
@@ -316,8 +315,7 @@ module Validation
# copies datasets from an older crossvalidation on the same dataset and the same folds
# returns true if successfull, false otherwise
def copy_cv_datasets( prediction_feature )
-
- cvs = Crossvalidation.all( {
+ cvs = Crossvalidation.find( {
:dataset_uri => self.dataset_uri,
:num_folds => self.num_folds,
:stratified => self.stratified,
@@ -332,7 +330,7 @@ module Validation
OpenTox::Dataset.exist?(v.training_dataset_uri,self.subjectid) and
OpenTox::Dataset.exist?(v.test_dataset_uri,self.subjectid)
#make sure self.id is set
- self.save if self.new?
+ #self.save if self.new?
tmp_val << { :validation_type => "crossvalidation",
:training_dataset_uri => v.training_dataset_uri,
:test_dataset_uri => v.test_dataset_uri,
@@ -354,16 +352,14 @@ module Validation
# creates cv folds (training and testdatasets)
# stores uris in validation objects
def create_new_cv_datasets( prediction_feature, task = nil )
-
- raise "random seed not set "+self.inspect unless self.random_seed
LOGGER.debug "creating datasets for crossvalidation"
orig_dataset = OpenTox::Dataset.find(self.dataset_uri,self.subjectid)
raise OpenTox::NotFoundError.new "Dataset not found: "+self.dataset_uri.to_s unless orig_dataset
shuffled_compounds = orig_dataset.compounds.shuffle( self.random_seed )
- unless self.stratified
- split_compounds = shuffled_compounds.chunk( self.num_folds )
+ unless self.stratified
+ split_compounds = shuffled_compounds.chunk( self.num_folds.to_i )
else
class_compounds = {} # "inactive" => compounds[], "active" => compounds[] ..
shuffled_compounds.each do |c|
@@ -406,7 +402,7 @@ module Validation
@tmp_validations = []
- (1..self.num_folds).each do |n|
+ (1..self.num_folds.to_i).each do |n|
datasetname = 'cv'+self.id.to_s +
#'_d'+orig_dataset.name.to_s +
@@ -418,7 +414,7 @@ module Validation
test_compounds = []
train_compounds = []
- (1..self.num_folds).each do |nn|
+ (1..self.num_folds.to_i).each do |nn|
compounds = split_compounds.at(nn-1)
if n == nn
@@ -428,7 +424,7 @@ module Validation
end
end
- raise "internal error, num test compounds not correct" unless (shuffled_compounds.size/self.num_folds - test_compounds.size).abs <= 1
+ raise "internal error, num test compounds not correct" unless (shuffled_compounds.size/self.num_folds.to_i - test_compounds.size).abs <= 1
raise "internal error, num train compounds not correct" unless shuffled_compounds.size - test_compounds.size == train_compounds.size
LOGGER.debug "training set: "+datasetname+"_train, compounds: "+train_compounds.size.to_s
@@ -442,7 +438,7 @@ module Validation
{ DC.title => datasetname + '_test', DC.creator => source }, self.subjectid ).uri
#make sure self.id is set
- self.save if self.new?
+ #self.save if self.new?
tmp_validation = { :validation_type => "crossvalidation",
:training_dataset_uri => train_dataset_uri,
:test_dataset_uri => test_dataset_uri,
@@ -551,9 +547,10 @@ module Validation
# splits a dataset into test and training dataset
# returns map with training_dataset_uri and test_dataset_uri
def self.train_test_dataset_split( orig_dataset_uri, prediction_feature, subjectid, split_ratio=nil, random_seed=nil, task=nil )
-
split_ratio=0.67 unless split_ratio
+ split_ratio = split_ratio.to_f
random_seed=1 unless random_seed
+ random_seed = random_seed.to_i
orig_dataset = OpenTox::Dataset.find orig_dataset_uri, subjectid
orig_dataset.load_all subjectid
diff --git a/validation/validation_test.rb b/validation/validation_test.rb
index ffb25c4..efa8ad5 100755
--- a/validation/validation_test.rb
+++ b/validation/validation_test.rb
@@ -184,13 +184,13 @@ class ValidationTest < Test::Unit::TestCase
#ambit_service = "https://ambit.uni-plovdiv.bg:8443/ambit2"
#https%3A%2F%2Fambit.uni-plovdiv.bg%3A8443%2Fambit2
-
+
# post "/validate_datasets",{
-# :test_dataset_uri=>ambit_service+"/dataset/R401577?max=50",
-# :prediction_dataset_uri=>ambit_service+"/dataset/R401577?max=50&feature_uris[]="+CGI.escape(ambit_service)+"%2Fmodel%2F35194%2Fpredicted",
-# #:test_target_dataset_uri=>ambit_service+"/dataset/R401560",
-# :prediction_feature=>ambit_service+"/feature/26221",
-# :predicted_feature=>ambit_service+"/feature/218699",
+# :test_dataset_uri=>"http://local-ot/dataset/94",
+# :prediction_dataset_uri=>'http://local-ot/dataset/96',
+# :test_target_dataset_uri=>'http://local-ot/dataset/92',
+# :prediction_feature=>'http://local-ot/dataset/92/feature/Hamster%20Carcinogenicity',
+# :predicted_feature=>"",
# :classification=>"true",
# :subjectid=>SUBJECTID}
# #:model_uri=>"http://local-ot/model/31"}
@@ -199,8 +199,8 @@ class ValidationTest < Test::Unit::TestCase
# uri = last_response.body
# val = wait_for_task(uri)
# puts val
-# #get "/"+val.split("/")[-1]
-
+# get "/"+val.split("/")[-1]
+# puts last_response.body
# d = OpenTox::Dataset.find("https://ambit.uni-plovdiv.bg:8443/ambit2/dataset/R545",SUBJECTID)
# puts d.compounds.inspect
@@ -257,7 +257,9 @@ class ValidationTest < Test::Unit::TestCase
#delete "/1",:subjectid=>SUBJECTID
- run_test("19i")
+ prepare_examples()
+
+ #run_test("1a") #,{:validation_uri => "http://local-ot/validation/crossvalidation/1"})
#run_test("3a","http://local-ot/validation/crossvalidation/4")
#run_test("3b","http://local-ot/validation/crossvalidation/3")