diff options
author | mguetlein <martin.guetlein@gmail.com> | 2014-10-06 22:12:53 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2014-10-06 22:12:53 +0200 |
commit | f9dd94f98b0366c67fb32ef305f2975fcd2ea72a (patch) | |
tree | 60424fcd1c46f8a2b224d6bf21aa2a783c4dd4e3 | |
parent | c3a75906b6490b27f142e40f3c40627596389db7 (diff) |
add check for successfull PC-prediction
-rw-r--r-- | test/data/EPAFHM.medi.csv | 101 | ||||
-rw-r--r-- | test/lazar-physchem.rb | 22 |
2 files changed, 119 insertions, 4 deletions
diff --git a/test/data/EPAFHM.medi.csv b/test/data/EPAFHM.medi.csv new file mode 100644 index 0000000..975eaa1 --- /dev/null +++ b/test/data/EPAFHM.medi.csv @@ -0,0 +1,101 @@ +"STRUCTURE_SMILES","LC50_mmol" +"C1=CC(C=O)=CC(OC)=C1OCCCCCC",1.13E-02 +"C1(OC)=C([N+]([O-])=O)C(C=O)=CC(Br)=C1O",2.66E-01 +"CCCCCCCCOC(=O)C1=CC=CC(C(=O)OCCCCCCCC)=C1", +"C1=CC(Cl)=CC=C1OC2=C([N+](=O)[O-])C=CC=C2",7.69E-03 +"CC1=C(NC=O)C=CC=C1Cl",2.75E-01 +"CCCCOC(=O)C1=CC=CC(C(=O)OCCCC)=C1",3.23E-03 +"C(C1=CC=CC=C1)(C2=CC=CC=C2)(O)C#C",5.33E-02 +"CCCSCCSCCC",4.22E-02 +"CCCCCCCCOC(=O)C1=CC=C(C(=O)OCCCCCCCC)C=C1", +"OCCCCOC(=O)C1=CC=CC=C1C(=O)OCCCCOC(=O)C2=CC=CC=C2C(=O)OCCCCO", +"CCCSCCCCSCCC",1.45E-02 +"C1([N+](=O)[O-])=CC=C(C)C=C1OP(=O)(OC2=C([N+](=O)[O-])C=CC(C)=C2)OC3=C([N+]([O-])=O)C=CC(C)=C3", +"C1=C([N+]([O-])=O)C=CC=C1P(=O)(C2=CC([N+](=O)[O-])=CC=C2)C3=CC([N+](=O)[O-])=CC=C3", +"ClCCOC(=O)NC1CCCCC1",1.70E-01 +"O=C1C(C2=CC=CC=C2)(C(=O)NC(=O)N1)CC",2.08E+00 +"OC1=C(C=C(C=C1)[N+](=O)[O-])[N+](=O)[O-]",5.92E-02 +"NC(=O)OCC",5.88E+01 +"[O-]C(C1=CC=CC=C1O)=O.[Na+]",1.25E+01 +"C1=CC=CC=C1C(=O)N",5.46E+00 +"CC[N+](CC)(CC)CC1(=CC=CC=C1).[Cl-]",7.07E-01 +"CN(C)N",1.31E-01 +"CC(C(C(NC([O-])=N1)=O)(C1=O)CC)CCC.[Na+]",1.99E-01 +"N1C(=O)C(CC)(CCC(C)C)C(=O)NC1=O",3.77E-01 +"O=C1C2=C(N=CN2C)N(C(=O)N1C)C",7.78E-01 +"C1=CC=C2C(=C1)C(=O)C(C)=CC2=O",6.39E-04 +"OC1=C(Cl)C(Cl)=C(Cl)C=C1Cl",4.44E-03 +"OC1=CC(C)=C(Cl)C=C1",3.84E-02 +"[H]Cl.C1=CC=CC=C1CC2=NCCN2",1.80E+00 +"O=S(O)(O)=O.C1(=CC=CC=C1CC(N)C).C2=CC=CC=C2CC(N)C",7.82E-02 +"O(CC)CC",3.45E+01 +"O=C2N5[C@@]3([H])[C@@]1([H])[C@](C[C@]4([H])N(C7)CC[C@]34C6=C5C=CC=C6)([H])C7=CCO[C@]([H])1C2.O=C9N%12[C@@]%10([H])[C@@]8([H])[C@](C[C@]%11([H])N(C%14)CC[C@]%10%11C%13=C%12C=CC=C%13)([H])C%14=CCO[C@]([H])8C9.O=S(O)(O)=O",1.11E-03 +"NC1=CC=CC=C1",1.13E+00 +"O=C(OC1=C2C(=CC=C1)C=CC=C2)NC",4.35E-02 +"CCO",3.19E+02 +"C1(=NC=CC=C1C2CCCN2C).OS(O)(=O)=O",5.30E-02 +"C1(O)=CC=CC=C1C(=O)N",7.36E-01 +"O=C1NC(=O)NC=C1", +"CCCCCC=O",1.75E-01 +"O=C1OC2=CC=CC=C2C(O)=C1CC3=C(O)C4=CC=CC=C4OC3=O",1.52E-02 +"C1(C=O)=CC=C(OC2=CC=CC=C2)C=C1",2.32E-02 +"CO",9.17E+02 +"OC(C)C",1.44E+02 +"CC(=O)C",1.23E+02 +"ClC(Cl)Cl",5.92E-01 +"CS(=O)C",4.35E+02 +"ClC(C(Cl)(Cl)Cl)(Cl)Cl",6.00E-03 +"OC1=C(C=C(C(=C1CC2=C(C(=CC(=C2Cl)Cl)Cl)O)Cl)Cl)Cl",5.16E-05 +"C1=CC(=CC=C1N)C(=O)CC",9.79E-01 +"OCCC",7.57E+01 +"CCCCO",2.33E+01 +"CCCCCO",5.36E+00 +"C1=CC=CC=C1",2.25E-01 +"CC(Cl)(Cl)Cl",3.55E-01 +"[S-]C1=NC(C(C(C)CCC)(CC)C(N1)=O)=O.[Na+]",9.91E-02 +"CC#N",4.01E+01 +"CC=O",7.67E-01 +"ClCCl",3.89E+00 +"IC(I)I",7.42E-03 +"[N+](C)(C)(C)C.[Cl-]",4.22E+00 +"CC(C)(C)O",8.65E+01 +"C(F)(F)(F)CO",1.19E+00 +"CC(=O)C(C)(C)C",8.69E-01 +"ClC(C(Cl)Cl)(Cl)Cl",3.72E-02 +"CC1(C)NC(=O)NC1=O",1.29E+02 +"CCC(O)(C)CC",6.58E+00 +"C#CC(O)(C)CC",1.24E+01 +"C1CCCC(C#C)(O)C1",2.06E+00 +"CCCCOCCOP(=O)(OCCOCCCC)OCCOCCCC",2.81E-02 +"OCC(C)C",1.93E+01 +"CC(Cl)CCl",1.12E+00 +"NCC(N)C",1.36E+01 +"CC(O)CC",4.95E+01 +"CCC(=O)C",4.47E+01 +"OC(C)CN",3.36E+01 +"ClC(CCl)Cl",6.12E-01 +"ClC(=CCl)Cl",3.36E-01 +"CC(=O)OC",4.82E+00 +"ClC(C(Cl)Cl)Cl",1.21E-01 +"C1(C)(C)CCCC(C)=C1C=CC(C)=O",2.65E-02 +"ClC1=C(O)C(Cl)=CC(=C1)C(C2=CC(Cl)=C(O)C(=C2)Cl)(C)C",3.63E-03 +"C(C1C=CC(=CC=1)O)(CC)(C)C",1.58E-02 +"C1CC(CCC1(N)C)C(C)(N)C",3.83E-01 +"ClC(Cl)C1=C(Cl)C=CC=C1Cl",4.22E-03 +"C1=CC=C2C=CC=C3C2=C1CC3",1.12E-02 +"CC1=CNC2=C1C=CC=C2",6.74E-02 +"O=C([C@](C(C=C4OC)=C(C=C4OC)OC3)([H])[C@]3([H])O2)C(C=C5)=C2C1=C5O[C@@H]([C@@](C)=C)C1",1.32E-05 +"O=C2C1=NC3=C(C=C(C)C(C)=C3)N(C[C@H](O)[C@H](O)[C@H](O)CO)C1=NC(N2)=O", +"C1=CC=CC=C1OC(=O)C2=CC=CC=C2C(=O)OC3=CC=CC=C3",2.51E-04 +"O=C1C2=C(C=CC=C2)C(=O)C3=C1C=CC=C3", +"CCOC(=O)C1=CC=CC=C1C(=O)OCC",1.43E-01 +"C1=CC=C(C(=O)OCCCC)C(=C1)C(=O)OCCCC",3.5900E-03 +"CCC1=C(Br)C(Br)=C(Br)C(Br)=C1Br", +"O=C1C2=C(C=CC=C2)N=NN1CSP(=S)(OC)OC",2.02E-04 +"C1=CC=CC=C1NC(=O)C2=C(O)C=CC=C2",1.85E-02 +"Cl\C(Cl)=C(Cl)/C(Cl)=C(Cl)\Cl",3.45E-04 +"OC1=C(C(=C(C(=C1Cl)Cl)Cl)Cl)Cl",9.12E-04 +"OC1=C(C=C(C=C1Cl)Cl)Cl",2.48E-02 +"OC1=CC(C(F)(F)F)=C([N+]([O-])=O)C=C1",4.41E-02 +"C1(N)=CC=CC=C1C(=O)N",2.90E+00 +"OC1=C([N+]([O-])=O)C=CC=C1",1.15E+00 diff --git a/test/lazar-physchem.rb b/test/lazar-physchem.rb index 066460a..d6f5894 100644 --- a/test/lazar-physchem.rb +++ b/test/lazar-physchem.rb @@ -4,19 +4,33 @@ class LazarPhyschemDescriptorTest < MiniTest::Test def test_lazar_pc_descriptors dataset = OpenTox::Dataset.new - dataset.upload File.join(DATA_DIR,"EPAFHM.mini.csv") + dataset.upload File.join(DATA_DIR,"EPAFHM.medi.csv") assert_equal dataset.uri.uri?, true + puts dataset.uri model_uri = OpenTox::Model::Lazar.create :dataset_uri => dataset.uri, :feature_generation_uri => File.join($algorithm[:uri],"descriptor","physchem"), :descriptors => [ "Openbabel.atoms", "Openbabel.bonds", "Openbabel.dbonds", "Openbabel.HBA1", "Openbabel.HBA2", "Openbabel.HBD", "Openbabel.MP", "Openbabel.MR", "Openbabel.MW", "Openbabel.nF", "Openbabel.sbonds", "Openbabel.tbonds", "Openbabel.TPSA"] - +# model_uri = "http://localhost:8085/model/437f008a-ca0f-4a85-83c1-d851ef2be60c" puts model_uri model = OpenTox::Model::Lazar.new model_uri assert_equal model_uri.uri?, true - prediction_uri = model.predict :compound_uri => "#{$compound[:uri]}/InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H" + puts model.predicted_variable + + compound_uri = "#{$compound[:uri]}/InChI=1S/C13H8Cl2O2/c14-12-5-4-11(7-13(12)15)17-10-3-1-2-9(6-10)8-16/h1-8H" + prediction_uri = model.predict :compound_uri => compound_uri +# prediction_uri = "http://localhost:8083/dataset/1e2d48d2-f720-4575-b192-524586630ac3" + prediction = OpenTox::Dataset.new prediction_uri assert_equal prediction.uri.uri?, true - #TODO check correct prediction puts prediction.uri + + assert prediction.features.collect{|f| f.uri}.include?(model.predicted_variable),"prediction feature #{model.predicted_variable} not included prediction dataset #{prediction.features.collect{|f| f.uri}}" + assert prediction.compounds.collect{|c| c.uri}.include?(compound_uri),"compound #{compound_uri} not included in prediction dataset #{prediction.compounds.collect{|c| c.uri}}" + assert_equal 1,prediction.compound_indices(compound_uri).size,"compound should only be once in the dataset" + + predicted_value = prediction.data_entry_value(prediction.compound_indices(compound_uri).first,model.predicted_variable) #[model.predicted_variable] + puts predicted_value + assert predicted_value > 0.01 + assert predicted_value < 0.1 end end |