summaryrefslogtreecommitdiff
path: root/similarity.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.de>2009-10-06 09:57:35 +0200
committerChristoph Helma <helma@in-silico.de>2009-10-06 09:57:35 +0200
commite0456259d3ba9b2b1db92c55fec75ea23d331bcc (patch)
treef551bfa87d74afbc766e7bb3c0f25b080787c20b /similarity.rb
parent4fb516b327f559439c42fc930562524a2017aa85 (diff)
Passes tests in opentox-test
Diffstat (limited to 'similarity.rb')
-rw-r--r--similarity.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/similarity.rb b/similarity.rb
new file mode 100644
index 0000000..672c03b
--- /dev/null
+++ b/similarity.rb
@@ -0,0 +1,25 @@
+require File.join(File.dirname(__FILE__),'dataset.rb')
+
+helpers do
+ def find
+ # + charges are dropped
+ uri = uri(params[:splat].first.gsub(/(InChI.*) (.*)/,'\1+\2')) # reinsert dropped '+' signs in InChIs
+ halt 404, "Dataset \"#{uri}\" not found." unless @set = Dataset.find(uri)
+ end
+
+ def uri(name)
+ name = URI.encode(name)
+ uri = File.join Dataset.base_uri, name
+ end
+end
+
+get '/tanimoto/dataset/*/dataset/*/?' do
+ find
+ @set.tanimoto(uri(params[:splat][1]))
+end
+
+get '/weighted_tanimoto/dataset/*/dataset/*/?' do
+ find
+ @set.weighted_tanimoto(uri(params[:splat][1]))
+end
+