From 115d9fa174ece1be1e2983b540676e308d192a11 Mon Sep 17 00:00:00 2001 From: davor Date: Fri, 20 Sep 2013 18:28:20 +0200 Subject: Added test for current models. --- test/lazar-fminer.rb | 9 +++-- test/lazar-models.rb | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 test/lazar-models.rb diff --git a/test/lazar-fminer.rb b/test/lazar-fminer.rb index ef17985..4f146c6 100644 --- a/test/lazar-fminer.rb +++ b/test/lazar-fminer.rb @@ -3,7 +3,7 @@ require_relative "setup.rb" class LazarFminerTest < MiniTest::Test def test_lazar_fminer - dataset = OpenTox::Dataset.new + dataset = OpenTox::Dataset.new dataset.upload File.join(DATA_DIR,"hamster_carcinogenicity.csv") assert_equal dataset.uri.uri?, true model_uri = OpenTox::Model::Lazar.create :dataset_uri => dataset.uri, :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc") @@ -11,7 +11,7 @@ class LazarFminerTest < MiniTest::Test model = OpenTox::Model::Lazar.new model_uri assert_equal model.uri.uri?, true feature_dataset_uri = model[RDF::OT.featureDataset] - feature_dataset = OpenTox::Dataset.new feature_dataset_uri + feature_dataset = OpenTox::Dataset.new feature_dataset_uri assert_equal dataset.compounds.size, feature_dataset.compounds.size assert_equal 54, feature_dataset.features.size assert_equal '[#6&A]-[#6&A]-[#6&A]=[#6&A]', OpenTox::Feature.new(feature_dataset.features.first.uri).title @@ -21,13 +21,12 @@ class LazarFminerTest < MiniTest::Test :prediction => "false", :confidence => 0.25281385281385277 },{ - # lazar Parameter, min_frequency = 8 :compound => OpenTox::Compound.from_smiles("c1ccccc1NN"), :prediction => "false", :confidence => 0.3639589577089577 } ].each do |example| prediction_uri = model.predict :compound_uri => example[:compound].uri - puts prediction_uri + #puts prediction_uri prediction_dataset = OpenTox::Dataset.new prediction_uri assert_equal prediction_dataset.uri.uri?, true prediction = prediction_dataset.predictions.select{|p| p[:compound].uri == example[:compound].uri}.first @@ -37,7 +36,7 @@ class LazarFminerTest < MiniTest::Test end # make a dataset prediction - compound_dataset = OpenTox::Dataset.new + compound_dataset = OpenTox::Dataset.new compound_dataset.upload File.join(DATA_DIR,"EPAFHM.mini.csv") assert_equal compound_dataset.uri.uri?, true prediction_uri = model.predict :dataset_uri => dataset.uri diff --git a/test/lazar-models.rb b/test/lazar-models.rb new file mode 100644 index 0000000..df4e32a --- /dev/null +++ b/test/lazar-models.rb @@ -0,0 +1,93 @@ +require_relative "setup.rb" + +class LazarModelTest < MiniTest::Test + + MODELS = [] + MODELS << { + :titel => "hamster_carcinogenicity", + :file => File.join(DATA_DIR,"hamster_carcinogenicity.csv"), + :type => "classification", + :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), + :min_frequency => 2, + :test_values => { + :feature_size => 54, + :first_feature => "[#6&A]-[#6&A]-[#6&A]=[#6&A]", + :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"false",0.25281385281385277], + :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"false",0.3639589577089577] + } + } + MODELS << { + :titel => "DSSTox_Carcinogenic_Potency_DBS_v5d_Hamster", + :file => File.join(DATA_DIR,"CPDBAS_v5d_cleaned","DSSTox_Carcinogenic_Potency_DBS_Hamster.csv"), + :type => "classification", + :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), + :min_frequency => 2, + :test_values => { + :feature_size => 58, + :first_feature => '[#6&A]-[#6&A]-[#6&A]=[#6&A]', + :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"inactive",0.23658008658008656], + :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"inactive",0.34980297480297484] + } + } + + + #DSSTox_Carcinogenic_Potency_DBS_Mouse.csv + #DSSTox_Carcinogenic_Potency_DBS_MultiCellCall.csv + #DSSTox_Carcinogenic_Potency_DBS_MultiCellCall_no_duplicates.csv + #DSSTox_Carcinogenic_Potency_DBS_Mutagenicity.csv + #DSSTox_Carcinogenic_Potency_DBS_Mutagenicity_no_duplicates.csv + #DSSTox_Carcinogenic_Potency_DBS_Rat.csv + #DSSTox_Carcinogenic_Potency_DBS_SingleCellCall.csv + def test_lazar_models + MODELS.each do |model| + dataset = OpenTox::Dataset.new + dataset.upload model[:file] + assert_equal dataset.uri.uri?, true + model_uri = OpenTox::Model::Lazar.create :dataset_uri => dataset.uri, :feature_generation_uri => model[:feature_generation_uri] + assert_equal model_uri.uri?, true + #puts "model_uri for '#{model[:titel]}': #{model_uri}" + this_model = OpenTox::Model::Lazar.new model_uri + assert_equal this_model.uri.uri?, true + feature_dataset_uri = this_model[RDF::OT.featureDataset] + feature_dataset = OpenTox::Dataset.new feature_dataset_uri + assert_equal dataset.compounds.size, feature_dataset.compounds.size + assert_equal model[:test_values][:feature_size], feature_dataset.features.size + #puts feature_dataset.features.size + assert_equal model[:test_values][:first_feature], OpenTox::Feature.new(feature_dataset.features.first.uri).title + #puts OpenTox::Feature.new(feature_dataset.features.first.uri).title + + [ { + :compound => model[:test_values][:prediction1][0], + :prediction => model[:test_values][:prediction1][1], + :confidence => model[:test_values][:prediction1][2] + },{ + :compound => model[:test_values][:prediction2][0], + :prediction => model[:test_values][:prediction2][1], + :confidence => model[:test_values][:prediction2][2] + } ].each do |example| + prediction_uri = this_model.predict :compound_uri => example[:compound] + #puts prediction_uri + prediction_dataset = OpenTox::Dataset.new prediction_uri + assert_equal prediction_dataset.uri.uri?, true + prediction = prediction_dataset.predictions.select{|p| p[:compound].uri == example[:compound]}.first + assert_equal example[:prediction], prediction[:value] + #puts prediction[:value] + assert_equal example[:confidence], prediction[:confidence] + #puts prediction[:confidence] + #puts prediction_dataset.uri + #prediction_dataset.delete + end + + # make a dataset prediction + compound_dataset = OpenTox::Dataset.new + compound_dataset.upload File.join(DATA_DIR,"EPAFHM.mini.csv") + assert_equal compound_dataset.uri.uri?, true + prediction_uri = this_model.predict :dataset_uri => dataset.uri + prediction = OpenTox::Dataset.new prediction_uri + assert_equal prediction.uri.uri?, true + + # cleanup + [dataset,this_model,feature_dataset,compound_dataset].each{|o| o.delete} + end + end +end -- cgit v1.2.3