diff options
Diffstat (limited to 'pubchem.rb')
-rw-r--r-- | pubchem.rb | 96 |
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 |