From 8d2f1c8a0f6cc9f7a481d1117bf8b3351130b1ea Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 7 Oct 2015 12:34:02 +0200 Subject: generalised fingerprints --- test/experiment.rb | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 115 insertions(+), 6 deletions(-) (limited to 'test/experiment.rb') 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 -- cgit v1.2.3