summaryrefslogtreecommitdiff
path: root/pubchem-test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'pubchem-test.rb')
-rw-r--r--pubchem-test.rb92
1 files changed, 92 insertions, 0 deletions
diff --git a/pubchem-test.rb b/pubchem-test.rb
new file mode 100644
index 0000000..273698e
--- /dev/null
+++ b/pubchem-test.rb
@@ -0,0 +1,92 @@
+require 'test/unit'
+require '../opentox-client/lib/opentox-client'
+require './pubchem.rb'
+require 'yaml'
+
+class AOPTest < Test::Unit::TestCase
+
+ def setup
+ @pug_uri = "http://pubchem.ncbi.nlm.nih.gov/rest/pug/"
+ @compound = OpenTox::PubChemCompound.new
+ @compound.cid = 1983
+ #@compound.from_name "2,4-D"
+ end
+
+ def test_initialize
+ print @compound.cid
+ print " "
+ puts @compound.to_smiles
+ puts "measured targets"
+ puts @compound.targets.collect{|t| t["Target Name"]}.to_yaml
+ puts "predicted targets"
+ puts @compound.predicted_targets.select{|t| t[:prediction] == "active"}.to_yaml
+
+ puts "predicted non_targets"
+ puts @compound.predicted_targets.select{|t| t[:prediction] == "inactive"}.size
+ #puts @compound.predicted_non_targets.values.inspect
+ measured_target_gis = @compound.targets.collect{|t| t["Target GI"]}.compact.uniq
+ measured_nontarget_gis = @compound.non_targets.collect{|t| t["Target GI"]}.compact.uniq
+ predicted_target_gis = @compound.predicted_targets.collect{|t| t[:target_gi] if t[:prediction] == "active"}.compact.uniq
+ predicted_nontarget_gis = @compound.predicted_targets.collect{|t| t[:target_gi] if t[:prediction] == "inactive"}.compact.uniq
+ print "correct predicted targets: "
+ puts (measured_target_gis & predicted_target_gis).size
+ print "new predicted targets: "
+ puts (predicted_target_gis - measured_target_gis).size
+ print "correct predicted non-targets: "
+ puts (measured_nontarget_gis & predicted_nontarget_gis).size
+ print "new predicted non-targets: "
+ puts (predicted_nontarget_gis - measured_nontarget_gis).size
+ print "incorrect predicted targets: "
+ puts (measured_nontarget_gis & predicted_target_gis).size
+ print "incorrect predicted non-targets: "
+ puts (measured_target_gis & predicted_nontarget_gis).size
+=begin
+ @compound.neighbors.each do |n|
+ #print n.cid
+ #print " "
+ print n.to_smiles
+ print " "
+ print n.similarity
+ print " "
+ puts n.p
+ puts n.targets.sort.inspect
+ #puts n.non_targets.inspect
+ end
+=end
+ #File.open("Acetaminophen.yaml","w+"){|f| f.puts @compound.to_yaml}
+ #puts @compound.neighbors.size
+ #assert_equal "7500", @p.cid
+ #assert_equal true, @p.aids[:active].include?(1188)
+ #assert_equal true, @p.aids[:inactive].include?(435)
+ end
+=begin
+ def test_similarity_search
+ #puts @p.to_smiles
+ @p.neighbors.each do |n|
+ #puts n.to_smiles
+ puts @p.target_similarity(n)
+ end
+ #puts @p.neighbors.inspect
+ #assert_equal 100, @p.neighbor_cids.size
+ end
+
+ def test_assay_description
+ puts @p.assay_description.to_yaml
+ end
+
+ def test_assay_genes
+ puts @p.assay_genes.to_yaml
+ end
+
+ def test_assay_similarity
+ @p2 = PubChem::Compound.new "OC(=O)C1=C(C=CC=C1)OC(=O)C"
+ puts @p.assay_similarity(@p2)
+ end
+
+ def test_target_similarity
+ @p2 = PubChem::Compound.new "OC(=O)C1=C(C=CC=C1)OC(=O)C"
+ puts @p.target_similarity(@p2)
+ end
+=end
+
+end