diff options
Diffstat (limited to 'test/classification.rb')
-rw-r--r-- | test/classification.rb | 53 |
1 files changed, 47 insertions, 6 deletions
diff --git a/test/classification.rb b/test/classification.rb index 6638a79..c670bb5 100644 --- a/test/classification.rb +++ b/test/classification.rb @@ -2,10 +2,25 @@ require_relative "setup.rb" class LazarClassificationTest < MiniTest::Test - def test_lazar_classification + def test_classification_default + algorithms = { + :descriptors => [ "MP2D" ], + :similarity => { + :method => "Algorithm::Similarity.tanimoto", + :min => 0.1 + }, + :prediction => { + :method => "Algorithm::Classification.weighted_majority_vote", + }, + :feature_selection => nil, + } training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"hamster_carcinogenicity.csv") - model = Model::Lazar.create training_dataset: training_dataset - + model = Model::Lazar.create training_dataset: training_dataset + assert_kind_of Model::LazarClassification, model + assert_equal algorithms, model.algorithms + substance = training_dataset.substances[10] + prediction = model.predict substance + assert_equal "false", prediction[:value] [ { :compound => OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"), :prediction => "false", @@ -33,12 +48,31 @@ class LazarClassificationTest < MiniTest::Test assert_equal "Could not find similar substances with experimental data in the training dataset.", pred[:warning] if pred[:value].nil? end cid = Compound.from_smiles("CCOC(=O)N").id.to_s - assert_equal "1 substances have been removed from neighbors, because they are identical with the query substance.", prediction_dataset.predictions[cid][:warning] + assert_match "excluded", prediction_dataset.predictions[cid][:warning] # cleanup [training_dataset,model,compound_dataset,prediction_dataset].each{|o| o.delete} end + + def test_classification_parameters + algorithms = { + :descriptors => ['MACCS'], + :similarity => { + :min => 0.4 + }, + } + training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"hamster_carcinogenicity.csv") + model = Model::Lazar.create training_dataset: training_dataset, algorithms: algorithms + assert_kind_of Model::LazarClassification, model + assert_equal "Algorithm::Classification.weighted_majority_vote", model.algorithms[:prediction][:method] + assert_equal "Algorithm::Similarity.tanimoto", model.algorithms[:similarity][:method] + assert_equal algorithms[:similarity][:min], model.algorithms[:similarity][:min] + substance = training_dataset.substances[10] + prediction = model.predict substance + assert_equal "false", prediction[:value] + assert_equal 4, prediction[:neighbors].size + end - def test_lazar_kazius + def test_kazius t = Time.now training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"kazius.csv") t = Time.now @@ -48,8 +82,15 @@ class LazarClassificationTest < MiniTest::Test compound = Compound.from_smiles("Clc1ccccc1NN") prediction = model.predict compound assert_equal "1", prediction[:value] - #assert_in_delta 0.019858401199860445, prediction[:confidence], 0.001 end training_dataset.delete end + + def test_fingerprint_feature_selection + skip + end + + def test_physchem_classification + skip + end end |