summaryrefslogtreecommitdiff
path: root/test/fminer.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2015-10-08 10:43:43 +0200
committerChristoph Helma <helma@in-silico.ch>2015-10-08 10:43:43 +0200
commit1a56148aadef031c4f487bc23fda43f4ac5b7369 (patch)
tree3555c5883ed0c292b105c40c185ebba3e5bd4e3e /test/fminer.rb
parent394d564699756288569169ff3e198d6d7702f092 (diff)
parente3217075b602a950a0ee995fcfa731d97b5ba3eb (diff)
new master branch
Diffstat (limited to 'test/fminer.rb')
-rw-r--r--test/fminer.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/fminer.rb b/test/fminer.rb
new file mode 100644
index 0000000..16e1f9e
--- /dev/null
+++ b/test/fminer.rb
@@ -0,0 +1,52 @@
+require_relative "setup.rb"
+
+class FminerTest < MiniTest::Test
+
+ def test_fminer_bbrc
+ dataset = OpenTox::Dataset.from_csv_file File.join(DATA_DIR,"hamster_carcinogenicity.csv")
+ refute_nil dataset.id
+ feature_dataset = OpenTox::Algorithm::Fminer.bbrc dataset
+ feature_dataset = Dataset.find feature_dataset.id
+ assert_equal dataset.compounds.size, feature_dataset.compounds.size
+ # TODO: fminer calculates 62 instead of 54 features
+ # it is unclear which commit changed the numbers (occurs with old libraries/mongodb branch too
+ # modification of Compound to use smiles instead of inchis seems to have no effect
+ #assert_equal 54, feature_dataset.features.size
+ #assert_equal "C-C-C=C", feature_dataset.features.first.smarts
+ compounds = feature_dataset.compounds
+ smarts = feature_dataset.features
+ smarts.each do |smart|
+ assert smart.p_value.round(2) >= 0.95
+ end
+ match = OpenTox::Algorithm::Descriptor.smarts_match compounds, smarts
+ feature_dataset.data_entries.each_with_index do |fingerprint,i|
+ assert_equal match[i], fingerprint
+ end
+
+ dataset.delete
+ feature_dataset.delete
+ end
+
+ def test_fminer_last
+ skip "last features have to be activated"
+ dataset = OpenTox::Dataset.new
+ dataset.upload File.join(DATA_DIR,"hamster_carcinogenicity.csv")
+ 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]', 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
+ end
+
+end