summaryrefslogtreecommitdiff
path: root/test/model-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/model-nanoparticle.rb
parentde763211bd2b6451e3a8dc20eb95a3ecf72bef17 (diff)
validation statistic fixes
Diffstat (limited to 'test/model-nanoparticle.rb')
-rw-r--r--test/model-nanoparticle.rb135
1 files changed, 0 insertions, 135 deletions
diff --git a/test/model-nanoparticle.rb b/test/model-nanoparticle.rb
deleted file mode 100644
index 67bbfdd..0000000
--- a/test/model-nanoparticle.rb
+++ /dev/null
@@ -1,135 +0,0 @@
-require_relative "setup.rb"
-
-class NanoparticleModelTest < 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_core_coating_source_uris
- @training_dataset.nanoparticles.each do |np|
- refute_nil np.core.source
- np.coating.each{|c| refute_nil c.source}
- end
- end
-
- def test_nanoparticle_model
- assert true, @prediction_feature.measured
- model = Model::Lazar.create training_dataset: @training_dataset, prediction_feature: @prediction_feature
- refute_empty model.dependent_variables
- refute_empty model.descriptor_ids
- refute_empty model.independent_variables
- assert_equal "Algorithm::Caret.rf", model.algorithms[:prediction][:method]
- assert_equal "Algorithm::Similarity.weighted_cosine", model.algorithms[:similarity][:method]
- nanoparticle = @training_dataset.nanoparticles[-34]
- assert_includes nanoparticle.dataset_ids, @training_dataset.id
- prediction = model.predict nanoparticle
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- prediction = model.predict @training_dataset.substances[14]
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- model.delete
- end
-
- def test_nanoparticle_fingerprint_model
- assert true, @prediction_feature.measured
- algorithms = {
- :descriptors => {
- :method => "fingerprint",
- :type => "MP2D",
- },
- :similarity => {
- :method => "Algorithm::Similarity.tanimoto",
- :min => 0.1
- },
- :feature_selection => nil
- }
- model = Model::Lazar.create training_dataset: @training_dataset, prediction_feature: @prediction_feature, algorithms: algorithms
- refute_empty model.dependent_variables
- refute_empty model.descriptor_ids
- refute_empty model.independent_variables
- assert_equal "Algorithm::Caret.rf", model.algorithms[:prediction][:method]
- assert_equal "Algorithm::Similarity.tanimoto", model.algorithms[:similarity][:method]
- assert_nil model.algorithms[:descriptors][:categories]
- nanoparticle = @training_dataset.nanoparticles[-34]
- assert_includes nanoparticle.dataset_ids, @training_dataset.id
- prediction = model.predict nanoparticle
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- prediction = model.predict @training_dataset.substances[14]
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- model.delete
- end
-
- def test_nanoparticle_fingerprint_model_with_feature_selection
- assert true, @prediction_feature.measured
- algorithms = {
- :descriptors => {
- :method => "fingerprint",
- :type => "MP2D",
- },
- :similarity => {
- :method => "Algorithm::Similarity.tanimoto",
- :min => 0.1
- },
- }
- model = Model::Lazar.create training_dataset: @training_dataset, prediction_feature: @prediction_feature, algorithms: algorithms
- refute_empty model.algorithms[:feature_selection]
- refute_empty model.dependent_variables
- refute_empty model.descriptor_ids
- refute_empty model.independent_variables
- assert_equal "Algorithm::Caret.rf", model.algorithms[:prediction][:method]
- assert_equal "Algorithm::Similarity.tanimoto", model.algorithms[:similarity][:method]
- nanoparticle = @training_dataset.nanoparticles[-34]
- assert_includes nanoparticle.dataset_ids, @training_dataset.id
- prediction = model.predict nanoparticle
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- prediction = model.predict @training_dataset.substances[14]
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- model.delete
- end
-
- def test_nanoparticle_calculated_properties_model
- skip "Nanoparticle calculate_properties similarity not yet implemented"
- assert true, @prediction_feature.measured
- algorithms = {
- :descriptors => {
- :method => "calculate_properties",
- :features => PhysChem.openbabel_descriptors,
- },
- :similarity => {
- :method => "Algorithm::Similarity.weighted_cosine",
- :min => 0.5
- },
- :prediction => {
- :method => "Algorithm::Regression.weighted_average",
- },
- }
- model = Model::Lazar.create training_dataset: @training_dataset, prediction_feature: @prediction_feature, algorithms: algorithms
- refute_empty model.dependent_variables
- refute_empty model.descriptor_ids
- refute_empty model.independent_variables
- assert_equal "Algorithm::Caret.rf", model.algorithms[:prediction][:method]
- assert_equal "Algorithm::Similarity.weighted", model.algorithms[:similarity][:method]
- nanoparticle = @training_dataset.nanoparticles[-34]
- assert_includes nanoparticle.dataset_ids, @training_dataset.id
- prediction = model.predict nanoparticle
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- prediction = model.predict @training_dataset.substances[14]
- refute_nil prediction[:value]
- assert_includes prediction[:prediction_interval][0]..prediction[:prediction_interval][1], prediction[:measurements].median, "This assertion assures that measured values are within the prediction interval. It may fail in 5% of the predictions."
- model.delete
- end
-
- def test_import_ld
- skip # Ambit JSON-LD export defunct
- dataset_ids = Import::Enanomapper.import_ld
- end
-end