summaryrefslogtreecommitdiff
path: root/test/experiment.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/experiment.rb')
-rw-r--r--test/experiment.rb121
1 files changed, 115 insertions, 6 deletions
diff --git a/test/experiment.rb b/test/experiment.rb
index 2c4073d..b49f349 100644
--- a/test/experiment.rb
+++ b/test/experiment.rb
@@ -70,8 +70,8 @@ class ExperimentTest < MiniTest::Test
]
min_sims = [0.3,0.7]
#min_sims = [0.7]
- #types = ["FP2","FP3","FP4","MACCS","mpd"]
- types = ["mpd","FP3"]
+ #types = ["FP2","FP3","FP4","MACCS","MP2D"]
+ types = ["MP2D","FP3"]
experiment = Experiment.create(
:name => "Fingerprint regression with different types for datasets #{datasets}.",
:dataset_ids => datasets.collect{|d| Dataset.from_csv_file(File.join(DATA_DIR, d)).id},
@@ -113,13 +113,12 @@ class ExperimentTest < MiniTest::Test
end
def test_mpd_fingerprints
-=begin
datasets = [
"EPAFHM.medi.csv",
]
- types = ["FP2","mpd"]
+ types = ["FP2","MP2D"]
experiment = Experiment.create(
- :name => "FP2 vs mpd fingerprint regression for datasets #{datasets}.",
+ :name => "FP2 vs MP2D fingerprint regression for datasets #{datasets}.",
:dataset_ids => datasets.collect{|d| Dataset.from_csv_file(File.join(DATA_DIR, d)).id},
)
types.each do |type|
@@ -134,8 +133,9 @@ class ExperimentTest < MiniTest::Test
end
experiment.run
p experiment.id
+=begin
=end
- experiment = Experiment.find '55ffd0c02b72ed123c000000'
+ #experiment = Experiment.find '55ffd0c02b72ed123c000000'
p experiment
puts experiment.report.to_yaml
end
@@ -182,4 +182,113 @@ class ExperimentTest < MiniTest::Test
puts experiment.report.to_yaml
p experiment.summary
end
+
+ def test_mpd_mna_regression_fingerprints
+ datasets = [
+ "EPAFHM.medi.csv",
+ #"hamster_carcinogenicity.csv"
+ ]
+ min_sims = [0.0,0.3]
+ types = ["MP2D","MNA"]
+ neighbor_algos = [
+ "fingerprint_neighbors",
+ "fingerprint_count_neighbors",
+ ]
+ experiment = Experiment.create(
+ :name => "MNA vs MPD descriptors",
+ :dataset_ids => datasets.collect{|d| Dataset.from_csv_file(File.join(DATA_DIR, d)).id},
+ )
+ types.each do |type|
+ min_sims.each do |min_sim|
+ neighbor_algos.each do |neighbor_algo|
+ experiment.model_settings << {
+ :model_algorithm => "OpenTox::Model::LazarRegression",
+ :prediction_algorithm => "OpenTox::Algorithm::Regression.weighted_average",
+ :neighbor_algorithm => neighbor_algo,
+ :neighbor_algorithm_parameters => {
+ :type => type,
+ :min_sim => min_sim,
+ }
+ }
+ end
+ end
+ end
+ experiment.run
+#=end
+=begin
+ experiment = Experiment.find '56029cb92b72ed673d000000'
+=end
+ p experiment.id
+ puts experiment.report.to_yaml
+ #p experiment.summary
+ experiment.results.each do |dataset,result|
+ result.each do |r|
+ p r
+ # TODO fix r["model_id"]
+ params = Model::Lazar.find(r["model_id"])[:neighbor_algorithm_parameters]
+ RepeatedCrossValidation.find(r["repeated_crossvalidation_id"]).crossvalidations.each do |cv|
+ cv.validation_ids.each do |vid|
+ model_params = Model::Lazar.find(Validation.find(vid).model_id)[:neighbor_algorithm_parameters]
+ assert_equal params[:type], model_params[:type]
+ assert_equal params[:min_sim], model_params[:min_sim]
+ refute_equal params[:training_dataset_id], model_params[:training_dataset_id]
+ end
+ end
+ end
+ end
+ end
+
+ def test_mpd_mna_classification_fingerprints
+ datasets = [
+ #"EPAFHM.medi.csv",
+ "hamster_carcinogenicity.csv"
+ ]
+ min_sims = [0.0,0.3]
+ types = ["MP2D","MNA"]
+ neighbor_algos = [
+ "fingerprint_count_neighbors",
+ "fingerprint_neighbors",
+ ]
+ experiment = Experiment.create(
+ :name => "MNA vs MPD descriptors",
+ :dataset_ids => datasets.collect{|d| Dataset.from_csv_file(File.join(DATA_DIR, d)).id},
+ )
+ types.each do |type|
+ min_sims.each do |min_sim|
+ neighbor_algos.each do |neighbor_algo|
+ experiment.model_settings << {
+ :model_algorithm => "OpenTox::Model::LazarClassification",
+ :prediction_algorithm => "OpenTox::Algorithm::Classification.weighted_majority_vote",
+ :neighbor_algorithm => neighbor_algo,
+ :neighbor_algorithm_parameters => {
+ :type => type,
+ :min_sim => min_sim,
+ }
+ }
+ end
+ end
+ end
+ experiment.run
+#=end
+=begin
+ experiment = Experiment.find '56029cb92b72ed673d000000'
+=end
+ p experiment.id
+ puts experiment.report.to_yaml
+ #p experiment.summary
+ experiment.results.each do |dataset,result|
+ result.each do |r|
+ # TODO fix r["model_id"]
+ params = Model::Lazar.find(r["model_id"])[:neighbor_algorithm_parameters]
+ RepeatedCrossValidation.find(r["repeated_crossvalidation_id"]).crossvalidations.each do |cv|
+ cv.validation_ids.each do |vid|
+ model_params = Model::Lazar.find(Validation.find(vid).model_id)[:neighbor_algorithm_parameters]
+ assert_equal params[:type], model_params[:type]
+ assert_equal params[:min_sim], model_params[:min_sim]
+ refute_equal params[:training_dataset_id], model_params[:training_dataset_id]
+ end
+ end
+ end
+ end
+ end
end