summaryrefslogtreecommitdiff
path: root/test/validation-nanoparticle.rb~
diff options
context:
space:
mode:
authorhelma@in-silico.ch <helma@in-silico.ch>2018-10-12 21:58:36 +0200
committerhelma@in-silico.ch <helma@in-silico.ch>2018-10-12 21:58:36 +0200
commit9d17895ab9e8cd31e0f32e8e622e13612ea5ff77 (patch)
treed6984f0bd81679228d0dfd903aad09c7005f1c4c /test/validation-nanoparticle.rb~
parentde763211bd2b6451e3a8dc20eb95a3ecf72bef17 (diff)
validation statistic fixes
Diffstat (limited to 'test/validation-nanoparticle.rb~')
-rw-r--r--test/validation-nanoparticle.rb~133
1 files changed, 133 insertions, 0 deletions
diff --git a/test/validation-nanoparticle.rb~ b/test/validation-nanoparticle.rb~
new file mode 100644
index 0000000..0c7d355
--- /dev/null
+++ b/test/validation-nanoparticle.rb~
@@ -0,0 +1,133 @@
+require_relative "setup.rb"
+
+class NanoparticleValidationTest < MiniTest::Test
+ include OpenTox::Validation
+
+ def setup
+ @training_dataset = Dataset.where(:name => "Protein Corona Fingerprinting Predicts the Cellular Interaction of Gold and Silver Nanoparticles").first
+ @prediction_feature = @training_dataset.features.select{|f| f["name"] == 'log2(Net cell association)'}.first
+ end
+
+ def test_validate_default_nanoparticle_model
+ model = Model::Lazar.create training_dataset: @training_dataset, prediction_feature: @prediction_feature
+ cv = CrossValidation.create model
+ p cv.id
+ #File.open("tmp.pdf","w+"){|f| f.puts cv.correlation_plot format:"pdf"}
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
+ end
+
+ def test_validate_pls_pchem_model
+ algorithms = {
+ :descriptors => {
+ :method => "properties",
+ :categories => ["P-CHEM"]
+ },
+ :prediction => {:method => 'Algorithm::Caret.pls' },
+ :feature_selection => {
+ :method => "Algorithm::FeatureSelection.correlation_filter",
+ },
+ }
+ model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms
+ assert_equal "Algorithm::Caret.pls", model.algorithms[:prediction][:method]
+ cv = CrossValidation.create model
+ p cv.id
+ #File.open("tmp2.pdf","w+"){|f| f.puts cv.correlation_plot format:"pdf"}
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
+ end
+
+=begin
+ def test_validate_proteomics_pls_pchem_model
+ algorithms = {
+ :descriptors => {
+ :method => "properties",
+ :categories => ["Proteomics"]
+ },
+ :prediction => {:method => 'Algorithm::Caret.pls' },
+ :feature_selection => {
+ :method => "Algorithm::FeatureSelection.correlation_filter",
+ },
+ }
+ model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms
+ assert_equal "Algorithm::Caret.pls", model.algorithms[:prediction][:method]
+ cv = CrossValidation.create model
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
+ end
+=end
+
+ def test_validate_proteomics_pchem_default_model
+ algorithms = {
+ :descriptors => {
+ :method => "properties",
+ :categories => ["Proteomics","P-CHEM"]
+ },
+ :feature_selection => {
+ :method => "Algorithm::FeatureSelection.correlation_filter",
+ },
+ }
+ model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms
+ cv = CrossValidation.create model
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
+ end
+
+ def test_nanoparticle_fingerprint_model_without_feature_selection
+ algorithms = {
+ :descriptors => {
+ :method => "fingerprint",
+ :type => "MP2D",
+ },
+ :similarity => {
+ :method => "Algorithm::Similarity.tanimoto",
+ :min => 0.1
+ },
+ :feature_selection => nil
+ }
+ model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms
+ cv = CrossValidation.create model
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
+ end
+
+ def test_nanoparticle_fingerprint_weighted_average_model_without_feature_selection
+ algorithms = {
+ :descriptors => {
+ :method => "fingerprint",
+ :type => "MP2D",
+ },
+ :similarity => {
+ :method => "Algorithm::Similarity.tanimoto",
+ :min => 0.1
+ },
+ :prediction => { :method => "OpenTox::Algorithm::Regression.weighted_average" },
+ :feature_selection => nil
+ }
+ model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms
+ cv = CrossValidation.create model
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
+ end
+
+ def test_nanoparticle_fingerprint_model_with_feature_selection
+ algorithms = {
+ :descriptors => {
+ :method => "fingerprint",
+ :type => "MP2D",
+ },
+ :similarity => {
+ :method => "Algorithm::Similarity.tanimoto",
+ :min => 0.1
+ },
+ :feature_selection => {
+ :method => "Algorithm::FeatureSelection.correlation_filter",
+ },
+ }
+ model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms
+ cv = CrossValidation.create model
+ refute_nil cv.r_squared
+ refute_nil cv.rmse
+ end
+
+end