summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Maunz <andreas@maunz.de>2011-11-29 13:11:53 +0100
committerAndreas Maunz <andreas@maunz.de>2011-11-29 13:11:53 +0100
commit9626000599a12c1d469896f2e9dc5369899672c6 (patch)
tree806e3ff50300ab15a1bc4a323d2af3cb4b1dd5ec
parent1faa365f9bccaed6c31751385a42c11631a860da (diff)
PC tests (lazar.rb)
-rw-r--r--lazar.rb250
1 files changed, 155 insertions, 95 deletions
diff --git a/lazar.rb b/lazar.rb
index c440f47..ae3ef4b 100644
--- a/lazar.rb
+++ b/lazar.rb
@@ -62,97 +62,157 @@ class LazarTest < Test::Unit::TestCase
=begin
=end
-# def test_create_regression_model
-# create_model :dataset_uri => @@regression_training_dataset.uri
-# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
-# assert_in_delta @predictions.first.value(@compounds.first), 0.15, 0.2
-# assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3)
-# assert_equal 253, @predictions.first.neighbors(@compounds.first).size
-# cleanup
-# end
-#
-# def test_create_regression_prop_model
-# create_model :dataset_uri => @@regression_training_dataset.uri, :local_svm_kernel => "propositionalized"
-# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
-# assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3)
-# assert_equal 253, @predictions.first.neighbors(@compounds.first).size
-# assert_equal 131, @model.features.size
-# cleanup
-# end
-#
-# def test_classification_model
-# create_model :dataset_uri => @@classification_training_dataset.uri
-# # single prediction
-# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
-# # dataset activity
-# predict_compound OpenTox::Compound.from_smiles("CNN")
-# # dataset prediction
-# predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid)
-# # assertions
-# # single prediction
-# assert_equal "false", @predictions[0].value(@compounds[0])
-# assert_equal 0.2938.round_to(4), @predictions[0].confidence(@compounds[0]).round_to(4)
-# assert_equal 16, @predictions[0].neighbors(@compounds[0]).size
-# # dataset activity
-# assert !@predictions[1].measured_activities(@compounds[1]).empty?
-# assert_equal "true", @predictions[1].measured_activities(@compounds[1]).first.to_s
-# assert @predictions[1].value(@compounds[1]).nil?
-# # dataset prediction
-# c = OpenTox::Compound.from_smiles("CC(=Nc1ccc2c(c1)Cc1ccccc21)O")
-# assert_equal nil, @predictions[2].value(c)
-# assert_equal "true", @predictions[2].measured_activities(c).first.to_s
-# c = OpenTox::Compound.from_smiles("c1ccccc1NN")
-# assert_equal "false", @predictions[2].value(c)
-# assert_equal 0.2938.round_to(4) , @predictions[2].confidence(c).round_to(4)
-# # model
-# assert_equal 41, @model.features.size
-# cleanup
-# end
-#
-#
-# def test_classification_svm_model
-# create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification"
-# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
-# predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid)
-#
-# assert_equal "false", @predictions[0].value(@compounds[0])
-# assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4)
-# assert_equal 16, @predictions[0].neighbors(@compounds[0]).size
-#
-# c = OpenTox::Compound.from_smiles("c1ccccc1NN")
-# assert_equal 4, @predictions[1].compounds.size
-# assert_equal "false", @predictions[1].value(c)
-#
-# assert_equal 41, @model.features.size
-# cleanup
-# end
-#
-# def test_classification_svm_prop_model
-# create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification", :local_svm_kernel => "propositionalized"
-# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
-# predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid)
-#
-# assert_equal "false", @predictions[0].value(@compounds[0])
-# assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4)
-# assert_equal 16, @predictions[0].neighbors(@compounds[0]).size
-#
-# c = OpenTox::Compound.from_smiles("c1ccccc1NN")
-# assert_equal 4, @predictions[1].compounds.size
-# assert_equal "false", @predictions[1].value(c)
-#
-# assert_equal 41, @model.features.size
-# cleanup
-# end
+ ### Regression
+ #
+ # Nominal / Ordinal Features
def test_regression_mlr_prop_model
create_model :dataset_uri => @@regression_training_dataset.uri, :prediction_algorithm => "local_mlr_prop"
predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
- assert_equal 0.453, @predictions.first.confidence(@compounds.first).round_to(3)
- assert_equal 0.765, @predictions.first.value(@compounds.first).round_to(3)
+ assert_equal 0.45, @predictions.first.confidence(@compounds.first).round_to(2)
+ assert_equal 0.62, @predictions.first.value(@compounds.first).round_to(2)
assert_equal 253, @predictions.first.neighbors(@compounds.first).size
assert_equal 131, @model.features.size
end
+ def test_create_regression_model
+ create_model :dataset_uri => @@regression_training_dataset.uri
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_in_delta @predictions.first.value(@compounds.first), 0.15, 0.2
+ assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3)
+ assert_equal 253, @predictions.first.neighbors(@compounds.first).size
+ cleanup
+ end
+
+ def test_create_regression_prop_model
+ create_model :dataset_uri => @@regression_training_dataset.uri, :local_svm_kernel => "propositionalized"
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3)
+ assert_equal 253, @predictions.first.neighbors(@compounds.first).size
+ assert_equal 131, @model.features.size
+ cleanup
+ end
+
+ # Numeric Features
+ def test_create_regression_prop_pc_model
+ create_model :dataset_uri => @@regression_training_dataset.uri, :local_svm_kernel => "propositionalized", :pc_type => "electronic"
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_in_delta @predictions.first.value(@compounds.first), 0.53, 0.1
+ assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3)
+ assert_equal 253, @predictions.first.neighbors(@compounds.first).size
+ assert_equal 131, @model.features.size
+ cleanup
+ end
+
+ def test_regression_mlr_prop_pc_model
+ create_model :dataset_uri => @@regression_training_dataset.uri, :prediction_algorithm => "local_mlr_prop", :pc_type => "electronic"
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_equal 0.45, @predictions.first.confidence(@compounds.first).round_to(2)
+ assert_equal 0.76, @predictions.first.value(@compounds.first).round_to(2)
+ assert_equal 253, @predictions.first.neighbors(@compounds.first).size
+ assert_equal 131, @model.features.size
+ end
+
+
+
+
+ ### Classification
+
+ ## Nominal / Ordinal Features
+
+ def test_classification_model
+ create_model :dataset_uri => @@classification_training_dataset.uri
+ # single prediction
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ # dataset activity
+ predict_compound OpenTox::Compound.from_smiles("CNN")
+ # dataset prediction
+ predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid)
+ # assertions
+ # single prediction
+ assert_equal "false", @predictions[0].value(@compounds[0])
+ assert_equal 0.2938.round_to(4), @predictions[0].confidence(@compounds[0]).round_to(4)
+ assert_equal 16, @predictions[0].neighbors(@compounds[0]).size
+ # dataset activity
+ assert !@predictions[1].measured_activities(@compounds[1]).empty?
+ assert_equal "true", @predictions[1].measured_activities(@compounds[1]).first.to_s
+ assert @predictions[1].value(@compounds[1]).nil?
+ # dataset prediction
+ c = OpenTox::Compound.from_smiles("CC(=Nc1ccc2c(c1)Cc1ccccc21)O")
+ assert_equal nil, @predictions[2].value(c)
+ assert_equal "true", @predictions[2].measured_activities(c).first.to_s
+ c = OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_equal "false", @predictions[2].value(c)
+ assert_equal 0.2938.round_to(4) , @predictions[2].confidence(c).round_to(4)
+ # model
+ assert_equal 41, @model.features.size
+ cleanup
+ end
+
+
+ def test_classification_svm_model
+ create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification"
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid)
+
+ assert_equal "false", @predictions[0].value(@compounds[0])
+ assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4)
+ assert_equal 16, @predictions[0].neighbors(@compounds[0]).size
+
+ c = OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_equal 4, @predictions[1].compounds.size
+ assert_equal "false", @predictions[1].value(c)
+
+ assert_equal 41, @model.features.size
+ cleanup
+ end
+
+ def test_classification_svm_prop_model
+ create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification", :local_svm_kernel => "propositionalized"
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid)
+
+ assert_equal "false", @predictions[0].value(@compounds[0])
+ assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4)
+ assert_equal 16, @predictions[0].neighbors(@compounds[0]).size
+
+ c = OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_equal 4, @predictions[1].compounds.size
+ assert_equal "false", @predictions[1].value(c)
+
+ assert_equal 41, @model.features.size
+ cleanup
+ end
+
+
+ ## Numeric Features
+
+ def test_classification_svm_prop_pc_model
+ create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification", :local_svm_kernel => "propositionalized", :pc_type => "electronic"
+ predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
+ predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid)
+
+ assert_equal "false", @predictions[0].value(@compounds[0])
+ assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4)
+ assert_equal 16, @predictions[0].neighbors(@compounds[0]).size
+
+ c = OpenTox::Compound.from_smiles("c1ccccc1NN")
+ assert_equal 4, @predictions[1].compounds.size
+ assert_equal "false", @predictions[1].value(c)
+
+ assert_equal 41, @model.features.size
+ cleanup
+ end
+
+
+
+
+
+
+
+
+
+
## def test_regression_mlr_prop_conf_stdev
## create_model :dataset_uri => @@regression_training_dataset.uri, :prediction_algorithm => "local_mlr_prop", :conf_stdev => "true"
## predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN")
@@ -162,18 +222,18 @@ class LazarTest < Test::Unit::TestCase
## assert_equal 131, @model.features.size
## end
-# def test_conf_stdev
-# params = {:sims => [0.6,0.72,0.8], :acts => [1,1,1], :neighbors => [1,1,1], :conf_stdev => true}
-# params2 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1,1], :conf_stdev => true } # stev ~ 1.4
-# params3 = {:sims => [0.6,0.7,0.8], :acts => [1,1,1], :neighbors => [1,1,1], }
-# params4 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1] }
-# 2.times {
-# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params), 0.72, 0.0001
-# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params2), 0.172617874759125, 0.0001
-# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params3), 0.7, 0.0001
-# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params4), 0.7, 0.0001
-# }
-# end
+ def test_conf_stdev
+ params = {:sims => [0.6,0.72,0.8], :acts => [1,1,1], :neighbors => [1,1,1], :conf_stdev => true}
+ params2 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1,1], :conf_stdev => true } # stev ~ 1.4
+ params3 = {:sims => [0.6,0.7,0.8], :acts => [1,1,1], :neighbors => [1,1,1], }
+ params4 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1] }
+ 2.times {
+ assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params), 0.72, 0.0001
+ assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params2), 0.172617874759125, 0.0001
+ assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params3), 0.7, 0.0001
+ assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params4), 0.7, 0.0001
+ }
+ end
=begin
def test_ambit_classification_model