From 517cc4a04beba76137c171030a40153f1ab34b66 Mon Sep 17 00:00:00 2001 From: davor Date: Mon, 23 Sep 2013 15:02:53 +0200 Subject: Added models. --- .../DSSTox_Carcinogenic_Potency_DBS_Hamster.csv | 1 - ...enic_Potency_DBS_Mutagenicity_no_duplicates.csv | 5 - test/lazar-models.rb | 139 ++++++++++++++++----- 3 files changed, 109 insertions(+), 36 deletions(-) diff --git a/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Hamster.csv b/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Hamster.csv index 7578542..c0e8158 100644 --- a/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Hamster.csv +++ b/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Hamster.csv @@ -50,7 +50,6 @@ ClC(=CCl)Cl,inactive O=C1OC2=C(C=CC=C2)C=C1,inactive O=C2C1=C(OC)C=C(OC)C(Cl)=C1O[C@]32C(OC)=CC(C[C@@](C)3[H])=O,inactive C1=C(C=CC(=C1)C(C2=CC=C(N)C(=C2)C)=C3C=CC(=N)C=C3)N.[H]Cl,inactive -,inactive [Cl-].[Cd+2].[Cl-],inactive C1=C2C(=CC=C1NC3=CC=CC=C3)C=CC=C2,inactive O=C1C(C2=CC=CC=C2)(C(=O)NC(=O)N1)CC,inactive diff --git a/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Mutagenicity_no_duplicates.csv b/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Mutagenicity_no_duplicates.csv index 13c9d4d..835b2b1 100644 --- a/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Mutagenicity_no_duplicates.csv +++ b/test/data/CPDBAS_v5d_cleaned/DSSTox_Carcinogenic_Potency_DBS_Mutagenicity_no_duplicates.csv @@ -38,7 +38,6 @@ S=C1NCCN1,active NC1=NC(C2=CC=C([N+]([O-])=O)O2)=CS1,active O=NN(C(=O)N)CCC,active Nc1cc(Cl)c(N)cc1.OS(O)(=O)=O,active -NC1=CC=CC(C)=C1.[H]Cl,active NC1=CC=C3C(N=C2C=C(C=CC2=C3)N)=C1.NC4=CC=C6C(N=C5C=C(C=CC5=C6)N)=C4.Cl.Cl.O,active NC1=CC2=C(C=CC=C2)C=C1,active NC1=CC=CC2=C1C=CC=C2,active @@ -160,7 +159,6 @@ O=N[O-].[Na+],active O=NN(CCC)CCC,active O=NN(CC=C1)CC1,active C1(=C(C=CC=C1)N)N.[H]Cl.[H]Cl,active -O=P(H)(OC)OC,active [O-][N+](C2=CC=C(O2)C1=CSC(NN(C)C)=N1)=O,active O=P(OC(CCl)CCl)(OC(CCl)CCl)OC(CCl)CCl,active O=NN1CCCC1,active @@ -318,7 +316,6 @@ CC=C,active C1=C2C(=CC=C1NC3=CC=C(C=C3)NC4=CC=C5C(=C4)C=CC=C5)C=CC=C2,active [Se]=S,active O=P([O-])([O-])[O-].O=P([O-])([O-])[O-].O=P([O-])([O-])[O-].O=P([O-])([O-])[O-].Cl[O-].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+],active -CC(=C)CCl,active C1OC1C2CO2,active C1=C2C=CC3=CC=CC=C3C2=CC4=CC=C5C(=C14)C=CC=C5,active C\C1=C\N(C(=O)NC1=O)[C@H]2C[C@H](/N=[N+]=[N-])[C@@H](CO)O2,active @@ -631,7 +628,6 @@ CC(=C)[C@@H]1CCC(=CC1)C,inactive C=CCC1=CC=C(C=C1)OC,inactive CNNCC1=CC=C(C=C1)C(=O)NC(C)C,inactive O=C(CCC(=O)O)NN(C)C,inactive -CC(=C)CCl,inactive NC1=CC=CC=C1,inactive CC(=C)C#N,inactive CN1N(C2=CC=CC=C2)C(=O)C=C1C,inactive @@ -734,7 +730,6 @@ NC1=NC(=NC(=N1)N)N,inactive N1=CC=CC=C1,inactive [Na+].O=C([O-])[C@@H](N)CCC(O)=O,inactive C1=C(CO)OC=C1,inactive -C1=C(C=CC=C1N)C.[H]Cl,inactive O=C1C23C4C5C6(C(=O)C7=C(O)C(C)=CC(=C7C(C6=C(C2C5O)O)=O)O)C(C4O)C(=C3C(=O)C8=C1C(O)=C(C)C=C8O)O,inactive C1(CCNC(NC(N)=N)=N)=CC=CC=C1.[H]Cl,inactive O.[Na+].O.O.CCN(CC)C([S-])=S,inactive diff --git a/test/lazar-models.rb b/test/lazar-models.rb index df4e32a..c58964b 100644 --- a/test/lazar-models.rb +++ b/test/lazar-models.rb @@ -3,19 +3,22 @@ require_relative "setup.rb" class LazarModelTest < MiniTest::Test MODELS = [] - MODELS << { - :titel => "hamster_carcinogenicity", - :file => File.join(DATA_DIR,"hamster_carcinogenicity.csv"), - :type => "classification", - :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), - :min_frequency => 2, - :test_values => { - :feature_size => 54, - :first_feature => "[#6&A]-[#6&A]-[#6&A]=[#6&A]", - :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"false",0.25281385281385277], - :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"false",0.3639589577089577] - } - } + # test hamster +# MODELS << { +# :titel => "hamster_carcinogenicity", +# :file => File.join(DATA_DIR,"hamster_carcinogenicity.csv"), +# :type => "classification", +# :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), +# :min_frequency => 2, +# :test_values => { +# :feature_size => 54, +# :first_feature => "[#6&A]-[#6&A]-[#6&A]=[#6&A]", +# :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"false",0.25281385281385277], +# :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"false",0.3639589577089577] +# } +# } + + # Hamster MODELS << { :titel => "DSSTox_Carcinogenic_Potency_DBS_v5d_Hamster", :file => File.join(DATA_DIR,"CPDBAS_v5d_cleaned","DSSTox_Carcinogenic_Potency_DBS_Hamster.csv"), @@ -27,34 +30,109 @@ class LazarModelTest < MiniTest::Test :first_feature => '[#6&A]-[#6&A]-[#6&A]=[#6&A]', :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"inactive",0.23658008658008656], :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"inactive",0.34980297480297484] + } } - } + +# # Mutagenicity +# MODELS << { +# :titel => "DSSTox_Carcinogenic_Potency_DBS_v5d_Mutagenicity", +# :file => File.join(DATA_DIR,"CPDBAS_v5d_cleaned","DSSTox_Carcinogenic_Potency_DBS_Mutagenicity_no_duplicates.csv"), +# :type => "classification", +# :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), +# :min_frequency => 8, +# :test_values => { +# :feature_size => 58, +# :first_feature => '[#6&A]-[#6&A]-[#6&A]=[#6&A]', +# :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"inactive",0.23658008658008656], +# :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"inactive",0.34980297480297484] +# } +# } +# +# # Mouse +# MODELS << { +# :titel => "DSSTox_Carcinogenic_Potency_DBS_v5d_Mouse", +# :file => File.join(DATA_DIR,"CPDBAS_v5d_cleaned","DSSTox_Carcinogenic_Potency_DBS_Mouse.csv"), +# :type => "classification", +# :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), +# :min_frequency => 10, +# :test_values => { +# :feature_size => 58, +# :first_feature => '[#6&A]-[#6&A]-[#6&A]=[#6&A]', +# :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"inactive",0.23658008658008656], +# :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"inactive",0.34980297480297484] +# } +# } +# +# # Rat +# MODELS << { +# :titel => "DSSTox_Carcinogenic_Potency_DBS_v5d_Rat", +# :file => File.join(DATA_DIR,"CPDBAS_v5d_cleaned","DSSTox_Carcinogenic_Potency_DBS_Rat.csv"), +# :type => "classification", +# :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), +# :min_frequency => 12, +# :test_values => { +# :feature_size => 58, +# :first_feature => '[#6&A]-[#6&A]-[#6&A]=[#6&A]', +# :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"inactive",0.23658008658008656], +# :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"inactive",0.34980297480297484] +# } +# } +# +# +# # MultiCellCall +# MODELS << { +# :titel => "DSSTox_Carcinogenic_Potency_DBS_v5d_MultiCellCall", +# :file => File.join(DATA_DIR,"CPDBAS_v5d_cleaned","DSSTox_Carcinogenic_Potency_DBS_MultiCellCall_no_duplicates.csv"), +# :type => "classification", +# :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), +# :min_frequency => 11, +# :test_values => { +# :feature_size => 58, +# :first_feature => '[#6&A]-[#6&A]-[#6&A]=[#6&A]', +# :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"inactive",0.23658008658008656], +# :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"inactive",0.34980297480297484] +# } +# } +# +# +# # SingleCellCall +# MODELS << { +# :titel => "DSSTox_Carcinogenic_Potency_DBS_v5d_SingleCellCall", +# :file => File.join(DATA_DIR,"CPDBAS_v5d_cleaned","DSSTox_Carcinogenic_Potency_DBS_SingleCellCall.csv"), +# :type => "classification", +# :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc"), +# :min_frequency => 15, +# :test_values => { +# :feature_size => 58, +# :first_feature => '[#6&A]-[#6&A]-[#6&A]=[#6&A]', +# :prediction1 => [OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H").uri,"inactive",0.23658008658008656], +# :prediction2 => [OpenTox::Compound.from_smiles("c1ccccc1NN").uri,"inactive",0.34980297480297484] +# } +# } + + - #DSSTox_Carcinogenic_Potency_DBS_Mouse.csv - #DSSTox_Carcinogenic_Potency_DBS_MultiCellCall.csv - #DSSTox_Carcinogenic_Potency_DBS_MultiCellCall_no_duplicates.csv - #DSSTox_Carcinogenic_Potency_DBS_Mutagenicity.csv - #DSSTox_Carcinogenic_Potency_DBS_Mutagenicity_no_duplicates.csv - #DSSTox_Carcinogenic_Potency_DBS_Rat.csv - #DSSTox_Carcinogenic_Potency_DBS_SingleCellCall.csv def test_lazar_models MODELS.each do |model| dataset = OpenTox::Dataset.new dataset.upload model[:file] assert_equal dataset.uri.uri?, true - model_uri = OpenTox::Model::Lazar.create :dataset_uri => dataset.uri, :feature_generation_uri => model[:feature_generation_uri] +# puts model[:file] +# puts dataset.uri +# puts + model_uri = OpenTox::Model::Lazar.create :dataset_uri => dataset.uri, :feature_generation_uri => model[:feature_generation_uri], :min_frequency => model[:min_frequency] assert_equal model_uri.uri?, true - #puts "model_uri for '#{model[:titel]}': #{model_uri}" +# puts "model_uri for '#{model[:titel]}': #{model_uri}" this_model = OpenTox::Model::Lazar.new model_uri assert_equal this_model.uri.uri?, true feature_dataset_uri = this_model[RDF::OT.featureDataset] feature_dataset = OpenTox::Dataset.new feature_dataset_uri assert_equal dataset.compounds.size, feature_dataset.compounds.size assert_equal model[:test_values][:feature_size], feature_dataset.features.size - #puts feature_dataset.features.size +# puts feature_dataset.features.size assert_equal model[:test_values][:first_feature], OpenTox::Feature.new(feature_dataset.features.first.uri).title - #puts OpenTox::Feature.new(feature_dataset.features.first.uri).title +# puts OpenTox::Feature.new(feature_dataset.features.first.uri).title [ { :compound => model[:test_values][:prediction1][0], @@ -66,16 +144,16 @@ class LazarModelTest < MiniTest::Test :confidence => model[:test_values][:prediction2][2] } ].each do |example| prediction_uri = this_model.predict :compound_uri => example[:compound] - #puts prediction_uri +# puts prediction_uri prediction_dataset = OpenTox::Dataset.new prediction_uri assert_equal prediction_dataset.uri.uri?, true prediction = prediction_dataset.predictions.select{|p| p[:compound].uri == example[:compound]}.first assert_equal example[:prediction], prediction[:value] - #puts prediction[:value] +# puts prediction[:value] assert_equal example[:confidence], prediction[:confidence] - #puts prediction[:confidence] - #puts prediction_dataset.uri - #prediction_dataset.delete +# puts prediction[:confidence] +# puts prediction_dataset.uri + prediction_dataset.delete end # make a dataset prediction @@ -85,6 +163,7 @@ class LazarModelTest < MiniTest::Test prediction_uri = this_model.predict :dataset_uri => dataset.uri prediction = OpenTox::Dataset.new prediction_uri assert_equal prediction.uri.uri?, true +# puts prediction.uri # cleanup [dataset,this_model,feature_dataset,compound_dataset].each{|o| o.delete} -- cgit v1.2.3