From 160e75e696452ac61e651664ac56d16ce1c9c4b6 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Thu, 13 Oct 2016 19:17:03 +0200 Subject: model tests separated and cleaned --- test/validation-nanoparticle.rb | 74 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/validation-nanoparticle.rb (limited to 'test/validation-nanoparticle.rb') diff --git a/test/validation-nanoparticle.rb b/test/validation-nanoparticle.rb new file mode 100644 index 0000000..3692515 --- /dev/null +++ b/test/validation-nanoparticle.rb @@ -0,0 +1,74 @@ +require_relative "setup.rb" + +class NanoparticleTest < 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 + unless @training_dataset + Import::Enanomapper.import File.join(File.dirname(__FILE__),"data","enm") + @training_dataset = Dataset.where(name: "Protein Corona Fingerprinting Predicts the Cellular Interaction of Gold and Silver Nanoparticles").first + end + @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.rmse + p cv.r_squared + #File.open("tmp.pdf","w+"){|f| f.puts cv.correlation_plot} + refute_nil cv.r_squared + refute_nil cv.rmse + end + + def test_validate_pls_nanoparticle_model + algorithms = { + :descriptors => { :types => ["P-CHEM"] }, + :prediction => {:parameters => 'pls' }, + } + model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms + assert_equal "pls", model.algorithms[:prediction][:parameters] + assert_equal "Algorithm::Caret.regression", model.algorithms[:prediction][:method] + cv = CrossValidation.create model + p cv.rmse + p cv.r_squared + refute_nil cv.r_squared + refute_nil cv.rmse + end + + def test_validate_proteomics_pls_nanoparticle_model + algorithms = { + :descriptors => { :types => ["Proteomics"] }, + :prediction => { :parameters => 'pls' } + } + model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms + assert_equal "pls", model.algorithms[:prediction][:parameters] + assert_equal "Algorithm::Caret.regression", model.algorithms[:prediction][:method] + cv = CrossValidation.create model + p cv.rmse + p cv.r_squared + refute_nil cv.r_squared + refute_nil cv.rmse + end + + def test_validate_all_default_nanoparticle_model + algorithms = { + :descriptors => { + :types => ["Proteomics","P-CHEM"] + }, + } + model = Model::Lazar.create prediction_feature: @prediction_feature, training_dataset: @training_dataset, algorithms: algorithms + cv = CrossValidation.create model + p cv.rmse + p cv.r_squared + refute_nil cv.r_squared + refute_nil cv.rmse + end + + + def test_import_ld + skip # Ambit JSON-LD export defunct + dataset_ids = Import::Enanomapper.import_ld + end +end -- cgit v1.2.3