summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2015-07-19 21:24:41 +0200
committerChristoph Helma <helma@in-silico.ch>2015-07-19 21:24:41 +0200
commit546d4ac32cb064d678696aea67984adf63178d20 (patch)
tree3b4a412bf472b3f450c0e1d8d7aa3aa45840c952
parent2b3faa2e52307a76ce25becfb4158ea6752fb870 (diff)
lazar predictions working in principle
-rw-r--r--Gemfile1
-rw-r--r--opentox-test.gemspec1
-rw-r--r--test/descriptor-long.rb6
-rw-r--r--test/descriptor.rb31
-rw-r--r--test/feature.rb1
-rw-r--r--test/fminer.rb37
-rw-r--r--test/lazar-fminer.rb22
7 files changed, 53 insertions, 46 deletions
diff --git a/Gemfile b/Gemfile
index 4e4b771..641350c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,3 +1,4 @@
source 'http://rubygems.org'
gemspec
gem "opentox-client", :path => "../opentox-client"
+gem "opentox-algorithm", :path => "../algorithm"
diff --git a/opentox-test.gemspec b/opentox-test.gemspec
index 713b631..4dcfe92 100644
--- a/opentox-test.gemspec
+++ b/opentox-test.gemspec
@@ -18,6 +18,7 @@ Gem::Specification.new do |gem|
gem.add_runtime_dependency 'minitest'
gem.add_runtime_dependency "opentox-client"
+ gem.add_runtime_dependency "opentox-algorithm"
gem.add_runtime_dependency 'capybara'#, "= 2.1.0"
gem.add_runtime_dependency 'capybara-webkit'#, "= 1.0.0"
gem.post_install_message = "Please configure test in ~/.opentox/config/test.rb"
diff --git a/test/descriptor-long.rb b/test/descriptor-long.rb
index e33eea1..04ab8c5 100644
--- a/test/descriptor-long.rb
+++ b/test/descriptor-long.rb
@@ -13,9 +13,9 @@ class DescriptorLongTest < MiniTest::Test
dataset = OpenTox::Dataset.new
dataset.upload File.join(DATA_DIR,"hamster_carcinogenicity.mini.csv")
d = OpenTox::Algorithm::Descriptor.physchem dataset
- assert_equal dataset.compounds.size, d.data_entries.size
- assert_equal 332, d.data_entries[0].size
- d.delete
+ assert_equal dataset.compounds.size, d.keys.size
+ assert_equal 332, d.first.last.size
+ #d.delete
end
end
diff --git a/test/descriptor.rb b/test/descriptor.rb
index ac5477f..89ea457 100644
--- a/test/descriptor.rb
+++ b/test/descriptor.rb
@@ -20,44 +20,44 @@ class DescriptorTest < MiniTest::Test
def test_smarts
c = OpenTox::Compound.from_smiles "N=C=C1CCC(=F=FO)C1"
result = OpenTox::Algorithm::Descriptor.smarts_match c, "FF"
- assert_equal 1, result[c.uri]["FF"]
+ assert_equal 1, result[c]["FF"]
smarts = {"CC"=>1, "C"=>1, "C=C"=>1, "CO"=>0, "FF"=>1, "C1CCCC1"=>1, "NN"=>0}
result = OpenTox::Algorithm::Descriptor.smarts_match c, smarts.keys
- assert_equal smarts, result[c.uri]
+ assert_equal smarts, result[c]
smarts_count = {"CC"=>10, "C"=>6, "C=C"=>2, "CO"=>0, "FF"=>2, "C1CCCC1"=>10, "NN"=>0}
result = OpenTox::Algorithm::Descriptor.smarts_count c, smarts_count.keys
- assert_equal smarts_count, result[c.uri]
+ assert_equal smarts_count, result[c]
end
def test_compound_openbabel_single
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C#N"
result = OpenTox::Algorithm::Descriptor.physchem c, ["Openbabel.logP"]
- assert_equal 1, result[c.uri].size
- assert_equal 1.12518, result[c.uri]["Openbabel.logP"]
+ assert_equal 1, result[c].size
+ assert_equal 1.12518, result[c]["Openbabel.logP"]
end
def test_compound_cdk_single
c = OpenTox::Compound.from_smiles "c1ccccc1"
result = OpenTox::Algorithm::Descriptor.physchem c, ["Cdk.AtomCount"]
- assert_equal 12, result[c.uri]["Cdk.AtomCount.nAtom"]
+ assert_equal 12, result[c]["Cdk.AtomCount.nAtom"]
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C#N"
result = OpenTox::Algorithm::Descriptor.physchem c, ["Cdk.AtomCount"]
- assert_equal 17, result[c.uri]["Cdk.AtomCount.nAtom"]
+ assert_equal 17, result[c]["Cdk.AtomCount.nAtom"]
result = OpenTox::Algorithm::Descriptor.physchem c, ["Cdk.CarbonTypes"]
c_types = {"Cdk.CarbonTypes.C1SP1"=>1, "Cdk.CarbonTypes.C2SP1"=>0, "Cdk.CarbonTypes.C1SP2"=>0, "Cdk.CarbonTypes.C2SP2"=>1, "Cdk.CarbonTypes.C3SP2"=>0, "Cdk.CarbonTypes.C1SP3"=>2, "Cdk.CarbonTypes.C2SP3"=>1, "Cdk.CarbonTypes.C3SP3"=>1, "Cdk.CarbonTypes.C4SP3"=>0}
- assert_equal c_types, result[c.uri]
+ assert_equal c_types, result[c]
end
def test_compound_joelib_single
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C#N"
result = OpenTox::Algorithm::Descriptor.physchem c, ["Joelib.LogP"]
- assert_equal 2.65908, result[c.uri]["Joelib.LogP"]
+ assert_equal 2.65908, result[c]["Joelib.LogP"]
end
def test_compound_all
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C#N"
result = OpenTox::Algorithm::Descriptor.physchem c
- assert_equal 332, result[c.uri].size
+ assert_equal 332, result[c].size
{
"Cdk.LongestAliphaticChain.nAtomLAC"=>5,
"Joelib.count.HeavyBonds"=>7,
@@ -65,25 +65,24 @@ class DescriptorTest < MiniTest::Test
#"Cdk.LengthOverBreadthDescriptor.LOBMAX"=>1.5379006098352144,
#"Joelib.GeometricalShapeCoefficient"=>5.210533887682899,
}.each do |d,v|
- assert_equal v, result[c.uri][d]
+ assert_equal v, result[c][d]
end
end
def test_compound_descriptor_parameters
c = OpenTox::Compound.from_smiles "CC(=O)CC(C)C#N"
result = OpenTox::Algorithm::Descriptor.physchem c, [ "Openbabel.logP", "Cdk.AtomCount", "Cdk.CarbonTypes", "Joelib.LogP" ]
- assert_equal 12, result[c.uri].size
+ assert_equal 12, result[c].size
expect = {"Openbabel.logP"=>1.12518, "Cdk.AtomCount.nAtom"=>17, "Cdk.CarbonTypes.C1SP1"=>1, "Cdk.CarbonTypes.C2SP1"=>0, "Cdk.CarbonTypes.C1SP2"=>0, "Cdk.CarbonTypes.C2SP2"=>1, "Cdk.CarbonTypes.C3SP2"=>0, "Cdk.CarbonTypes.C1SP3"=>2, "Cdk.CarbonTypes.C2SP3"=>1, "Cdk.CarbonTypes.C3SP3"=>1, "Cdk.CarbonTypes.C4SP3"=>0, "Joelib.LogP"=>2.65908}
- assert_equal expect, result[c.uri]
+ assert_equal expect, result[c]
end
def test_dataset_descriptor_parameters
dataset = OpenTox::Dataset.new
dataset.upload File.join(DATA_DIR,"hamster_carcinogenicity.mini.csv")
d = OpenTox::Algorithm::Descriptor.physchem dataset, [ "Openbabel.logP", "Cdk.AtomCount", "Cdk.CarbonTypes", "Joelib.LogP" ]
- assert_equal dataset.compounds.size, d.data_entries.size
- assert_equal 12, d.data_entries[0].size
- d.delete
+ assert_equal dataset.compounds.size, d.keys.size
+ assert_equal 12, d.first.last.size
end
end
diff --git a/test/feature.rb b/test/feature.rb
index 7fa266b..da7437a 100644
--- a/test/feature.rb
+++ b/test/feature.rb
@@ -11,7 +11,6 @@ class FeatureTest < MiniTest::Test
list = OpenTox::Feature.all
listsize1 = list.length
- p list
assert_equal true, list.collect{|f| f.id}.include?(@feature.id)
# modify feature
@feature2 = OpenTox::Feature.find(@feature.id)
diff --git a/test/fminer.rb b/test/fminer.rb
index be61add..663aa03 100644
--- a/test/fminer.rb
+++ b/test/fminer.rb
@@ -5,20 +5,24 @@ class FminerTest < MiniTest::Test
def test_fminer_bbrc
dataset = OpenTox::Dataset.new
dataset.upload File.join(DATA_DIR,"hamster_carcinogenicity.csv")
- assert_equal dataset.uri.uri?, true
-
- dataset_uri = OpenTox::Algorithm::Fminer.bbrc :dataset_uri => dataset.uri
- feature_dataset = OpenTox::Dataset.new dataset_uri
- assert_equal dataset_uri.uri?, true
+ refute_nil dataset.id
+
+ feature_dataset = OpenTox::Algorithm::Fminer.bbrc :dataset => dataset
+ # TODO do we need tasks here?
+ #task = OpenTox::Algorithm::Fminer.bbrc :dataset => dataset#.uri
+ #task.wait
+ #feature_dataset = task.result
+ #p task.code
+ #p feature_dataset.features
assert_equal dataset.compounds.size, feature_dataset.compounds.size
assert_equal 54, feature_dataset.features.size
- assert_equal '[#6&A]-[#6&A]-[#6&A]=[#6&A]', OpenTox::Feature.new(feature_dataset.features.first.uri).title
+ assert_equal '[#6&A]-[#6&A]-[#6&A]=[#6&A]', feature_dataset.features.first.title
compounds = feature_dataset.compounds
- smarts = feature_dataset.features.collect{|f| f.title}
+ smarts = feature_dataset.features.collect{|f| f.smarts}
match = OpenTox::Algorithm::Descriptor.smarts_match compounds, smarts
compounds.each_with_index do |c,i|
smarts.each_with_index do |s,j|
- assert_equal match[c.uri][s], feature_dataset.data_entries[i][j].to_i
+ assert_equal match[i][j], feature_dataset.data_entries[i][j].to_i
end
end
@@ -29,14 +33,19 @@ class FminerTest < MiniTest::Test
def test_fminer_last
dataset = OpenTox::Dataset.new
dataset.upload File.join(DATA_DIR,"hamster_carcinogenicity.csv")
- assert_equal dataset.uri.uri?, true
-
- dataset_uri = OpenTox::Algorithm::Fminer.last :dataset_uri => dataset.uri
- feature_dataset = OpenTox::Dataset.new dataset_uri
- assert_equal dataset_uri.uri?, true
+ feature_dataset = OpenTox::Algorithm::Fminer.last :dataset => dataset
assert_equal dataset.compounds.size, feature_dataset.compounds.size
assert_equal 21, feature_dataset.features.size
- assert_equal '[#6&A]-[#6&a]:[#6&a]:[#6&a]:[#6&a]:[#6&a]', OpenTox::Feature.new(feature_dataset.features.first.uri).title
+ assert_equal '[#6&A]-[#6&a]:[#6&a]:[#6&a]:[#6&a]:[#6&a]', feature_dataset.features.first.smarts
+
+ compounds = feature_dataset.compounds
+ smarts = feature_dataset.features.collect{|f| f.smarts}
+ match = OpenTox::Algorithm::Descriptor.smarts_match compounds, smarts
+ compounds.each_with_index do |c,i|
+ smarts.each_with_index do |s,j|
+ assert_equal match[i][j], feature_dataset.data_entries[i][j].to_i
+ end
+ end
dataset.delete
feature_dataset.delete
diff --git a/test/lazar-fminer.rb b/test/lazar-fminer.rb
index 4f146c6..e2b689d 100644
--- a/test/lazar-fminer.rb
+++ b/test/lazar-fminer.rb
@@ -5,16 +5,14 @@ class LazarFminerTest < MiniTest::Test
def test_lazar_fminer
dataset = OpenTox::Dataset.new
dataset.upload File.join(DATA_DIR,"hamster_carcinogenicity.csv")
- assert_equal dataset.uri.uri?, true
- model_uri = OpenTox::Model::Lazar.create :dataset_uri => dataset.uri, :feature_generation_uri => File.join($algorithm[:uri],"fminer","bbrc")
- assert_equal model_uri.uri?, true
- model = OpenTox::Model::Lazar.new model_uri
- assert_equal model.uri.uri?, true
- feature_dataset_uri = model[RDF::OT.featureDataset]
- feature_dataset = OpenTox::Dataset.new feature_dataset_uri
+ model = OpenTox::Model::Lazar.create OpenTox::Algorithm::Fminer.bbrc(:dataset => dataset)
+ feature_dataset = OpenTox::Dataset.find model.feature_dataset_id
assert_equal dataset.compounds.size, feature_dataset.compounds.size
assert_equal 54, feature_dataset.features.size
- assert_equal '[#6&A]-[#6&A]-[#6&A]=[#6&A]', OpenTox::Feature.new(feature_dataset.features.first.uri).title
+ feature_dataset.data_entries.each do |e|
+ assert_equal e.size, feature_dataset.features.size
+ end
+ assert_equal '[#6&A]-[#6&A]-[#6&A]=[#6&A]', feature_dataset.features.first.title
[ {
:compound => OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"),
@@ -25,10 +23,10 @@ class LazarFminerTest < MiniTest::Test
:prediction => "false",
:confidence => 0.3639589577089577
} ].each do |example|
- prediction_uri = model.predict :compound_uri => example[:compound].uri
- #puts prediction_uri
- prediction_dataset = OpenTox::Dataset.new prediction_uri
- assert_equal prediction_dataset.uri.uri?, true
+ prediction = model.predict :compound => example[:compound]
+ p prediction
+ p prediction.features
+ p prediction.compounds
prediction = prediction_dataset.predictions.select{|p| p[:compound].uri == example[:compound].uri}.first
assert_equal example[:prediction], prediction[:value]
assert_equal example[:confidence], prediction[:confidence]