summaryrefslogtreecommitdiff
path: root/pubchem.rb
diff options
context:
space:
mode:
Diffstat (limited to 'pubchem.rb')
-rw-r--r--pubchem.rb96
1 files changed, 0 insertions, 96 deletions
diff --git a/pubchem.rb b/pubchem.rb
deleted file mode 100644
index d16f4b4..0000000
--- a/pubchem.rb
+++ /dev/null
@@ -1,96 +0,0 @@
-require '../opentox-client/lib/opentox-client.rb'
-require 'json'
-require 'base64'
-
-def Math.gauss(x, sigma = 0.3)
- d = 1.0 - x.to_f
- Math.exp(-(d*d)/(2*sigma*sigma))
-end
-
-module OpenTox
-
- class PubChemCompound < Compound
-
- attr_accessor :cid
- @@pug_proxy = "http://localhost:8081/"
-
- def initialize cid
- @cid = cid.to_s
- end
-
- def fingerprint
- JSON.parse RestClient.get(File.join(@@pug_proxy,"cid",@cid,"fingerprint"))
- end
-
- def self.from_name name
- cids = JSON.parse(RestClient.get(File.join(@@pug_proxy,"name",CGI.escape(name))))
- if cids.size == 1
- PubChemCompound.new cids.first
- elsif cids.empty?
- nil
- else
- cids.collect{|cid| PubChemCompound.new cid}
- end
- end
-
- def name
- RestClient.get(File.join(@@pug_proxy,"cid",cid,"name")).chomp.sub(/^"/,'').sub(/"$/,'')
- end
-
- def neighbors
- JSON.parse(RestClient.get(File.join(@@pug_proxy,"cid",@cid,"neighbors"))).collect{|n| PubChemCompound.new(n) }
- end
-
- def assays
- JSON.parse RestClient.get(File.join(@@pug_proxy,"cid",cid,"assays"))
- end
-
- def active_assays
- assays.select{|a| a["Activity Outcome"] == "active"} if assays
- end
-
- def inactive_assays
- assays.select{|a| a["Activity Outcome"] == "inactive"} if assays
- end
-
- def targets
- active_assays.select{|a| a["Target GI"]} if assays
- end
-
- def non_targets
- inactive_assays.select{|a| a["Target GI"]} if assays
- end
-
- def predicted_assays
- JSON.parse RestClient.get(File.join(@@pug_proxy,"cid",cid,"predictions"))
- end
-
- def predicted_active_assays
- predicted_assays.select{|a| a["p_active"] > a["p_inactive"]} if predicted_assays
- end
-
- def predicted_inactive_assays
- predicted_assays.select{|a| a["p_active"] < a["p_inactive"]} if predicted_assays
- end
-
- def predicted_targets
- predicted_active_assays.select{|a| a["Target GI"]} if predicted_assays
- end
-
- def predicted_non_targets
- predicted_inactive_assays.select{|a| a["Target GI"]} if predicted_assays
- end
-
- def image_uri
- File.join @@pug_proxy, "cid", @cid, "image"
- end
-
- def similarity compound
- cosine compound
- end
-
- def cosine compound
- RestClient.get(File.join(@@pug_proxy,"cid",@cid,"cosine",compound.cid)).to_f
- end
- end
-end