summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2016-10-12 21:32:27 +0200
committerChristoph Helma <helma@in-silico.ch>2016-10-12 21:32:27 +0200
commitdc4ab1f4e64d738d6c0b70f0b690a2359685080f (patch)
tree054ae887bf978b519a95dce5dbead59bbc67a2bb /test
parent1ec5ad2c67f270287499980a794e51bc9a6bbd84 (diff)
physchem regression, correlation_filter for fingerprints
Diffstat (limited to 'test')
-rw-r--r--test/model.rb41
-rw-r--r--test/regression.rb37
2 files changed, 50 insertions, 28 deletions
diff --git a/test/model.rb b/test/model.rb
index 02b8e73..9f30928 100644
--- a/test/model.rb
+++ b/test/model.rb
@@ -4,17 +4,13 @@ class ModelTest < MiniTest::Test
def test_default_regression
algorithms = {
- :descriptors => {
- :method => "fingerprint",
- :type => "MP2D"
- },
+ :descriptors => [ "MP2D" ],
:similarity => {
:method => "Algorithm::Similarity.tanimoto",
:min => 0.1
},
:prediction => {
- :method => "Algorithm::Caret.regression",
- :parameters => "pls",
+ :method => "Algorithm::Caret.pls",
},
:feature_selection => nil,
}
@@ -29,17 +25,13 @@ class ModelTest < MiniTest::Test
def test_regression_parameters
algorithms = {
- :descriptors => {
- :method => "fingerprint",
- :type => "MP2D"
- },
+ :descriptors => [ "MP2D" ],
:similarity => {
:method => "Algorithm::Similarity.tanimoto",
:min => 0.3
},
:prediction => {
:method => "Algorithm::Regression.weighted_average",
- :parameters => "rf",
},
:feature_selection => nil,
}
@@ -57,18 +49,22 @@ class ModelTest < MiniTest::Test
def test_physchem_regression
algorithms = {
- :descriptors => "physchem",
+ :descriptors => ["PhysChem::OPENBABEL"],
:similarity => {
- :method => "Algorithm::Similarity.weighted_cosine",
+ :method => "Algorithm::Similarity.cosine",
}
}
training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.mini_log10.csv")
model = Model::Lazar.create training_dataset: training_dataset, algorithms: algorithms
assert_kind_of Model::LazarRegression, model
- assert_equal "Algorithm::Caret.regression", model.algorithms[:prediction][:method]
- assert_equal "Algorithm::Similarity.weighted_cosine", model.algorithms[:similarity][:method]
+ assert_equal "Algorithm::Caret.pls", model.algorithms[:prediction][:method]
+ assert_equal "Algorithm::Similarity.cosine", model.algorithms[:similarity][:method]
assert_equal 0.1, model.algorithms[:similarity][:min]
assert_equal algorithms[:descriptors], model.algorithms[:descriptors]
+ prediction = model.predict training_dataset.substances[10]
+ p prediction
+ refute_nil prediction[:value]
+ # TODO test predictin
end
def test_nanoparticle_default
@@ -78,8 +74,7 @@ class ModelTest < MiniTest::Test
training_dataset = Dataset.where(name: "Protein Corona Fingerprinting Predicts the Cellular Interaction of Gold and Silver Nanoparticles").first
end
model = Model::Lazar.create training_dataset: training_dataset
- assert_equal "Algorithm::Caret.regression", model.algorithms[:prediction][:method]
- assert_equal "rf", model.algorithms[:prediction][:parameters]
+ assert_equal "Algorithm::Caret.rf", model.algorithms[:prediction][:method]
assert_equal "Algorithm::Similarity.weighted_cosine", model.algorithms[:similarity][:method]
prediction = model.predict training_dataset.substances[14]
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."
@@ -99,7 +94,7 @@ class ModelTest < MiniTest::Test
training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.mini_log10.csv")
model = Model::Lazar.create training_dataset: training_dataset, algorithms: algorithms
assert_kind_of Model::LazarRegression, model
- assert_equal "Algorithm::Caret.regression", model.algorithms[:prediction][:method]
+ assert_equal "Algorithm::Caret.pls", model.algorithms[:prediction][:method]
assert_equal "Algorithm::Similarity.tanimoto", model.algorithms[:similarity][:method]
assert_equal 0.1, model.algorithms[:similarity][:min]
assert_equal algorithms[:feature_selection][:method], model.algorithms[:feature_selection][:method]
@@ -111,10 +106,7 @@ class ModelTest < MiniTest::Test
def test_default_classification
algorithms = {
- :descriptors => {
- :method => "fingerprint",
- :type => 'MP2D',
- },
+ :descriptors => [ "MP2D" ],
:similarity => {
:method => "Algorithm::Similarity.tanimoto",
:min => 0.1
@@ -135,10 +127,7 @@ class ModelTest < MiniTest::Test
def test_classification_parameters
algorithms = {
- :descriptors => {
- :method => "fingerprint",
- :type => 'MACCS',
- },
+ :descriptors => ['MACCS'],
:similarity => {
:min => 0.4
},
diff --git a/test/regression.rb b/test/regression.rb
index 4c21450..aad4195 100644
--- a/test/regression.rb
+++ b/test/regression.rb
@@ -45,12 +45,45 @@ class LazarRegressionTest < MiniTest::Test
end
def test_local_physchem_regression
- skip # TODO: fix
training_dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.medi_log10.csv"
- model = Model::Lazar.create(training_dataset.features.first, training_dataset, :prediction_algorithm => "OpenTox::Algorithm::Regression.local_physchem_regression")
+ algorithms = {
+ :descriptors => ["PhysChem::OPENBABEL"],
+ :similarity => {
+ :method => "Algorithm::Similarity.weighted_cosine",
+ :min => 0.5
+ },
+ }
+ model = Model::Lazar.create(training_dataset:training_dataset, algorithms:algorithms)
+ p model
compound = Compound.from_smiles "NC(=O)OCCC"
prediction = model.predict compound
refute_nil prediction[:value]
end
+ def test_local_physchem_regression_with_feature_selection
+ training_dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.medi_log10.csv"
+ algorithms = {
+ :descriptors => {
+ :method => "calculated_properties",
+ :types => ["OPENBABEL"]
+ },
+ :similarity => {
+ :method => "Algorithm::Similarity.weighted_cosine",
+ :min => 0.5
+ },
+ :feature_selection => {
+ :method => "Algorithm::FeatureSelection.correlation_filter",
+ },
+ }
+ model = Model::Lazar.create(training_dataset.features.first, training_dataset, algorithms)
+ p model
+ compound = Compound.from_smiles "NC(=O)OCCC"
+ prediction = model.predict compound
+ refute_nil prediction[:value]
+ end
+
+ def test_local_physchem_classification
+ skip
+ end
+
end